読み取り(システムコール)

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

最新のPOSIX準拠のオペレーティングシステムでは、ファイルシステムに格納されているファイルのデータにアクセスする必要があるプログラムは、読み取りシステムコールを使用します。ファイルは、通常、前回のopenの呼び出しから取得されるファイル記述子によって識別されますこのシステムコールは、呼び出し元が指定したバイト数のデータをファイルから読み込み、呼び出し元のプロセスが提供するバッファに格納します。

readシステムコールは3つの引数を取ります。

  1. ファイルのファイル記述子。
  2. 読み取ったデータを保存するバッファと
  3. ファイルから読み取られるバイト数。

POSIXの使用法

読み取りシステムコールインターフェイスは、POSIX仕様によって標準化されています。ファイルからのデータは、読み取り関数を呼び出すことによって読み取られます。

ssize_t read int fd void * buf size_t count );      

返される値は読み取られたバイト数であり(ゼロはファイルの終わりを示します)、ファイルの位置はこの数だけ進められます。この数が要求されたバイト数よりも小さい場合はエラーではありません。これは、たとえば、現在実際に使用可能なバイト数が少ないため(ファイルの終わりに近かったため、パイプまたは端末から読み取っているため)、またはシステムコールが信号

または、エラーが発生すると-1が返されます。この場合、errnoが適切に設定され、さらにファイル位置(存在する場合)が変更されるかどうかは指定されません。

も参照してください

参考文献

外部リンク