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

futimes

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

futimes




書式

     #include <sys/time.h>

     int
     utimes(const char *path, const struct timeval *times);

     int
     lutimes(const char *path, const struct timeval *times);

     int
     futimes(int fd, const struct timeval *times);


解説

     path で指定したファイルか fd が参照するファイルのアクセス時刻と更新時刻
     を、引数 times で指定されたように変更します。

     times が NULL である場合、アクセス時刻と更新時刻は現在の時刻に設定されま
     す。呼び出し側はファイルの所有者でファイルの書込み権があるか、スーパユー
     ザである必要があります。

     times が NULL 以外である場合、 times は 2 つの timeval 構造体の配列を指し
     ていることが前提となります。アクセス時刻は最初の要素に、更新時刻は次の要
     素に設定します。呼出し側はファイルの所有者であるかスーパユーザである必要
     があります。

     どちらの場合でも、ファイルの i ノード変更時刻は現在の時刻に設定されます。

     lutimes() は指定したファイルがシンボリックリンク以外では utimes() と同じ
     です。シンボリックリンクの場合 lutimes() はリンクのアクセス時刻と更新時刻
     を変更するのに対し、 utimes() はリンクが参照するファイルの時刻を変更しま
     す。


戻り値

     成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、
     グローバル変数 errno が設定されてエラーを示します。


エラー

     utimes() と lutimes() は、以下のような場合にエラーとなります。

     [EACCES]           指定されたパスには、検索が許可されていないディレクトリ
                        が含まれています。あるいは times 引数が NULL で、プロ
                        セスの実効ユーザ ID がファイルの所有者と一致せず、しか
                        もスーパユーザでもなく、書込みアクセスが拒否されまし
                        た。

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

     [EIO]              変更される i ノードの読書きの間に入出力エラーが発生し
                        ました。


     [EROFS]            そのファイルを含むファイルシステムが、読取り専用でマウ
                        ントされています。

     futimes() は、以下の場合にエラーとなります。

     [EBADF]            fd が、有効な記述子を参照していません。

     すべての関数は、以下の場合にエラーとなります。

     [EACCES]           times 引数が ヌルであり、プロセスの実効ユーザ ID が
                        ファイルの所有者と一致せず、しかもスーパユーザでもな
                        く、書込みアクセスが拒否されました。

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

     [EIO]              変更される i ノードの読み書き中に入出力エラーが発生し
                        ました。

     [EPERM]            times 引数が ヌルではなく、呼び出し側プロセスの実効ユ
                        ーザ ID が、ファイルの所有者と一致せず、しかもスーパユ
                        ーザでもありません。

     [EROFS]            そのファイルを含むファイルシステムが読取り専用でマウン
                        トされています。


関連項目

     stat(2), utime(3)


歴史

     utimes() 関数は 4.2BSD で登場しました。 futimes() 関数と lutimes() 関数は
     FreeBSD 3.0 ではじめて登場しました。

FreeBSD 4.4                      June 4, 1993                      FreeBSD 4.4

ABELNET VPSサービス