【書式】
#include <io.h>
int read(int fd, void *buf, int n);
【解説】
read()はファイルハンドルfdで示されるファイルの内容を最大n バイト読み
出して、bufで指されるメモリバッファへ書き込みます。
読み出し動作はファイルの現在のリードライト位置から開始します。読み出
し操作が完了すると、リードライト位置は実際に読み出されたデータのバイ
ト数だけ進められます。
【リターン値】
実際にメモリ上に読み込まれたファイル内容のバイト数を返します。ファイ
ルの終わりに到達した場合には 0 を返します。 エラーを検出すると-1を返
し、errnoにエラーの種類をセットします。
【エラー】
EACCES
アクセスが拒否されました
EBADF
ファイルハンドルfdが無効です
【可搬性】
UNIX, DOS窓
【参照】
creat(3), open(3), write(3), close(3)
【バグ】
read()は、実際には32Kバイト以上を一度に読み出すことが可能です。 この
場合にはread()のリターン値をunsigned intとして使用しなければなりませ
ん。 ただし、エラーを示す-1はunsigned intの65535と区別がつきませんの
で、read() が読み出すことができる最大のバイト数は 65534 に制限されま
す。
【copyright (c) 安江正樹@東海大学理学部物理学科】