write - ファイルの書き込み

【書式】

#include <io.h>

int write(int fd, const void *buf, int n);

【解説】

write()はbufで示されるメモリバッファの内容を、ファイルハンドルfdで示

されるファイルにnバイト書き込みます。

書き込み動作はファイルの現在のリードライト位置から開始します。書き込

み操作が完了すると、リードライト位置は実際に書き込まれたデータのバイ

ト数だけ進められます。

【リターン値】

実際にファイルに書き込まれたデータのバイト数を返します。ディスク容量

の残りが不足した場合には、n よりも小さい値を返します。エラーを検出す

ると-1を返し、errnoにエラーの種類をセットします。

【エラー】

EACCES

アクセスが拒否されました

EBADF

ファイルハンドルfdが無効です

【可搬性】

UNIX, DOS窓

【参照】

creat(3), open(3), read(3), close(3)

【バグ】

write()は、実際には32Kバイト以上を一度に書き込むことが可能です。この

場合にはwrite()のリターン値をunsigned int として使用しなければなりま

せん。 ただし、エラーを示す-1はunsigned intの65535と区別がつきません

ので、write()が書き込むことができる最大のバイト数は65534に制限されま

す。

【copyright (c) 安江正樹@東海大学理学部物理学科】