TRUNCATE(2) FreeBSD システムコールマニュアル TRUNCATE(2)
名称
truncate, ftruncate − 指定した長さにファイルを切り捨てたり拡張したりする |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <unistd.h> int |
truncate(const char *path, off_t length); int |
ftruncate(int fd, off_t length); |
解説 |
truncate() システムコールは、 path で指定されるファイルか fd で参照される ファイルのサイズが、 length バイトになるように切り捨てたり拡張します。 ファイルがこのサイズより大きい場合は、余分なデータが失われます。ファイル がこのサイズより小さい場合は、0 が書き込まれたように拡張されます。 ftruncate() では、ファイルが書込み用に開いている必要があります。 |
戻り値
成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、 グローバル変数 errno が設定されてエラーを示します。 |
エラー
truncate() システムコールは、以下のような場合に処理を失敗します: |
[ENOTDIR]
パスの構成要素中にディレクトリ以外のものが含まれていま す。 [ENAMETOOLONG] [ENOENT] [EACCES] [EACCES] [ELOOP] [EISDIR] [EROFS] [ETXTBSY] [EIO] [EFAULT] ftruncate() システムコールは、以下のような場合に処理を失敗します: [EBADF] [EINVAL] [EINVAL] 関連項目 |
バグ
この呼出しは、ファイルのある範囲を放棄できるように一般化する必要がありま す。 truncate() を使用してファイルを拡張すると、移植性が失われます。 |
歴史
truncate() システムコールは、 4.2BSD で登場しました。 FreeBSD 10.0 June 4, 1993 FreeBSD 10.0 |