システムコールの問題点 シンプルに遅い 特定のバイト単位でしか入出力できない stdio システムコールの問題点を解決してくれるのがコイツ。 では、どのように解決してるのか?という話。 バッファ システムコールで読み書きするデータを一時的に保存しておく場所のこと。 stdioはバッファに対して読み書きの指示を出すことで、汎用性を上げている。 読み 読みの場合は、ディスクからバッファに塊で書き出したデータを、「1バイトとか10バイトとかの単位でちょーだい」と命令することで読み込める。 システムコールも別に1バイト単位で読めるけど、遅いという問題があるので現実的じゃない。 書き 書き込みの場合、バッファに書き込んでから一定の単位でシステムコールのwrite()を呼ぶ。 一定の単位というのがミソで、これはストリームの向こうにターミナル(端末)がある場合は改行単位になるだろうし、ファイルがある場合
![『ふつうのLinuxプログラミング』読書メモ](https://cdn-ak-scissors.b.st-hatena.com/image/square/6f0c00669de748e2d61a92c246360e3d26bf34fa/height=288;version=1;width=512/https%3A%2F%2Fstorage.googleapis.com%2Fzenn-user-upload%2Favatar%2Fe61d92ebbd.jpeg)