システムコールの問題点 シンプルに遅い 特定のバイト単位でしか入出力できない stdio システムコールの問題点を解決してくれるのがコイツ。 では、どのように解決してるのか?という話。 バッファ システムコールで読み書きするデータを一時的に保存しておく場所のこと。 stdioはバッファに対して読み書きの指示を出すことで、汎用性を上げている。 読み 読みの場合は、ディスクからバッファに塊で書き出したデータを、「1バイトとか10バイトとかの単位でちょーだい」と命令することで読み込める。 システムコールも別に1バイト単位で読めるけど、遅いという問題があるので現実的じゃない。 書き 書き込みの場合、バッファに書き込んでから一定の単位でシステムコールのwrite()を呼ぶ。 一定の単位というのがミソで、これはストリームの向こうにターミナル(端末)がある場合は改行単位になるだろうし、ファイルがある場合