ftruncate(2) FreeBSD 一般コマンドマニュアル

ftruncate

前のページ 上に戻る 次のページ

ftruncate




書式

     #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]     パス名の構成要素が 255 文字を越えているか、またはパス
                        名全体が 1023 文字を越えています。

     [ENOENT]           指定されたファイルが存在しません。

     [EACCES]           前置パス名の構成要素について検索許可が拒否されていま
                        す。

     [EACCES]           指定されたファイルにユーザが書込めません。

     [ELOOP]            パス名を変換するときに検出されたシンボリックリンクが多
                        すぎます。

     [EISDIR]           指定されたファイルがディレクトリになっています。

     [EROFS]            指定されたファイルは読取り専用ファイルシステム上にあり
                        ます。

     [ETXTBSY]          ファイルが、実行中のピュアプロシージャ (共有テキスト)
                        ファイルです。

     [EIO]              inode の更新をしている間に入出力エラーが発生しました。

     [EFAULT]           path は、プロセスに割り当てられたアドレス空間の範囲外
                        を指しています。

     す。

     truncate() を使用してファイルを拡張すると、移植性が失われます。


歴史

     truncate() 関数呼び出しは、 4.2BSD で登場しました。

FreeBSD 4.4                      June 4, 1993                      FreeBSD 4.4

ABELNET VPSサービス