TRUNCATE(2) — NEWS-OS Programmer’s Manual
名称
truncate, ftruncate − ファイルを切り捨てて指定された長さにする
形式
truncate(path, length)
char ∗path;
off_t length;
ftruncate(fd, length)
int fd;
off_t length;
解説
truncate は、 path で指定されたファイル、 または fd で指されたファイルを 切り捨てて、 そのサイズを 最大で length バイトにします。 ファイルがコールの実行前にこのサイズより大きかった場合には、 余分なデータは失われます。 ftruncate を 使用する場合には、 ファイルは書き込みのためにオープンされていなければなりません。
リターン値
コールが成功した場合には、 値 0 が返されます。 コールが失敗した場合には、 −1 が返され、 グローバル変数 errno がそのエラーを 明らかにします。
エラー
次のエラーが発生しない限り、 truncate は成功します。
[ENOTDIR] パスプレフィックスの構成要素がディレクトリではないものがある。
[EINVAL] パス名に最上位ビットのセットされたキャラクタが含まれている。 (NEWS-OS ではおきない。)
[ENAMETOOLONG]
パス名の 1 構成要素が 255 バイトを 超えている、 またはパス名全体が 1023 バイトを 超えている。
[ENOENT] 指定されたファイルが存在していない。
[EACCES] パスプレフィックスの構成要素についてサーチパーミッションが 否定されているものがある。
[EACCES] 指定されたファイルは、 そのユーザによる書き込みが許されていない。
[ELOOP] パス名の処理で遭遇したシンボリックリンクの数が多すぎる。
[EISDIR] 指定されたファイルがディレクトリである。
[EROFS] 指定されたファイルが読み取り専用のファイルシステム上にある。
[ETXTBSY] そのファイルは、 実行中にある純粋なプロシージャ (共用テキスト) ファイルである。
[EIO] i ノードの更新中に入出力エラーが発生した。
[EFAULT] path が、 そのプロセスの割り当てアドレススペースの外を 指している。
次の場合でない限り、 ftruncate は成功します。
[EBADF] fd が有効なディスクリプタではない。
[EINVAL] fd がファイルではなく、 ソケットを 指している。
[EINVAL] fd が書き込みのためにオープンされていない。
関連事項
バグ
これらのコールは、 捨てられるファイルのバイトの範囲を 指定できるように改善する必要があります。
NEWS-OSRelease 4.2.1R