Loading article…
最新のPOSIX準拠オペレーティングシステムでは、ファイルシステムに格納されているファイルからデータにアクセスする必要があるプログラムは、readシステムコールを使用します。ファイルは、通常、以前にopenシステムコールを呼び出したときに取得したファイルディスクリプタによって識別されます。このシステムコールは、呼び出し元が指定したバイト数のデータをファイルから読み込み、呼び出し元のプロセスが提供するバッファに格納します。
readシステムコールは3つの引数を取ります。
readシステムコールインターフェースはPOSIX仕様によって標準化されています。ファイルからのデータは、read関数を呼び出すことによって読み取られます。
ssize_t read ( int fd , void * buf , size_t count );返される値は読み取られたバイト数です(0はファイルの終わりを示します)。ファイルの位置はこの数値分だけ進みます。この数値が要求されたバイト数より小さくてもエラーではありません。これは、例えば、現在実際に利用可能なバイト数が少ない場合(ファイルの終わりに近かった場合、パイプや端末から読み込んでいる場合など)、またはシステムコールがシグナルによって中断された場合などに発生する可能性があります。
あるいは、エラーが発生した場合は -1 が返され、その場合はerrnoが適切に設定され、ファイル位置(存在する場合)が変更されるかどうかは未指定のままになります。