|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > r > read - システムコールの説明 read - システムコールの説明 - Linux コマンド集 一覧表名前read - ファイル・ディスクリプターから読み込む 書式
#include <unistd.h> 説明read ()はファイル・ディスクリプター (file descriptor) fd から最大 count バイトを buf で始まるバッファーへ読み込もうとする。 count が 0 ならば、read () は 0 を返し、他に何も起きない。 count が SSIZE_MAX より大きければ、結果は特定できない。 返り値成功した場合、読み込んだバイト数を返す (0 はファイルの終りを意味する)。 ファイル位置はこの数だけ進められる。 この数が要求した数より小さかったとしてもエラーではない; 例えば今すぐには実際にそれだけの数しかない場合 (ファイルの最後に近いのかも しれないし、パイプ (pipe) や端末 (terminal) から読み込んでいるかもしれない) や read () がシグナル (signal) によって割り込まれた場合にこれは起こりえる。 エラーの場合は、-1 が返され、 errno が適切に設定される。この場合はファイル位置が変更されるかどうかは 不定である。 エラー
準拠SVr4, 4.3BSD, POSIX.1-2001. 制限NFS において。少量のデータを読み込む場合、最初の時のみにタイム・ スタンプが更新され、続くコールでは更新されないだろう。 これはクライアント側で属性のキャッシングを行なうためである。 なぜならば、もし全ての NFS クライアントが st_atime (最終ファイルアクセス時刻) の更新をサーバーに送らず、クライアント側でキャッシュを読むことに満足して いれば、サーバー側での read は発生しないので st_atime の更新は行なわれからだ。 UNIX の方式では、クライアント側の属性のキャッシングを無効にすることで、 これを得ることができる。しかしほとんどの状況ではこれは続くサーバーの 負荷を増加させ、パフォーマンスの低下をもたらす。 多くのファイルシステムやディスクは O_NONBLOCK の実装はしなくても済むくらいに十分に高速であると考えられている。 それでそのようなファイルやディスクには O_NONBLOCK は 利用できないかもしれない。 関連項目
close
(2),
fcntl
(2),
ioctl
(2),
lseek
(2),
open
(2),
pread
(2),
readdir
(2),
readlink
(2),
readv
(2),
select
(2),
write
(2),
fread
(3)
|
|