最終更新:2016-07-05 (火) 18:42:05 (1494d)  

read
Top / read

ファイルディスクリプタから読み込む

http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/read.2.html

ssize_t read(int fd, void *buf, size_t count);

説明

  • read() はファイルディスクリプタ (file descriptor) fd から最大 count バイトを buf で始まるバッファーへ読み込もうとする。
  • count が 0 ならば、 read() は 0 を返し、他に何も起きない。 count が SSIZE_MAX より大きければ、結果は特定できない。

返り値

  • 成功した場合、読み込んだバイト数を返す (0 はファイルの終りを意味する)。 ファイル位置はこの数だけ進められる。
  • この数が要求した数より小さかったとしてもエラーではない; 例えば今すぐには実際にそれだけの数しかない場合 (ファイルの最後に近いのかも しれないし、パイプ (pipe) や端末 (terminal) から読み込んでいるかもしれない) や read() がシグナル (signal) によって割り込まれた場合にこれは起こりえる。
  • エラーの場合は、-1 が返され、 errno が適切に設定される。この場合はファイル位置が変更されるかどうかは 不定である。

関連Linux/システムコール

Android

  • AOSP/bionic/libc/arch-arm/syscalls/read.S?
  • AOSP/bionic/libc/arch-arm64/syscalls/read.S?

関連