FUTIMES(3)

名前
futimes, lutimes - ファイルのタイムスタンプを変更する

書式
#include <sys/time.h>
int futimes(int fd, const struct timeval tv[2]);
int lutimes(const char *filename, const struct timeval tv[2]);

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

futimes(), lutimes(): _BSD_SOURCE

説明
futimes() は utimes(2) と同じ方法でファイルのアクセス時刻と修正時刻を変更する。 違いは、タイムスタンプを変更するファイルを、 パス名ではなく、ファイルディスクリプタ fd を用いて指定する点である。 lutimes() は utimes(2) と同じ方法でファイルのアクセス時刻と修正時刻を変更する。違いは、 filename がシンボリック・リンクを参照している場合に、リンクの展開を行わず、代わりにシンボリック・リンクのタイムスタンプを変更する点である。

返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。

エラー
エラーは utimes(2) と同じだが、 futimes() では以下のエラーが追加になっている:

EBADF
    fd が有効なファイルディスクリプタでない。

ENOSYS
    /proc ファイルシステムにアクセスできなかった。

lutimes() では以下のエラーが追加になっている:

ENOSYS
    カーネルがこの関数をサポートしていない。 Linux 2.6.22 以降が必要である。

バージョン
futimes() は glibc 2.3 以降で利用可能である。 lutimes() は glibc 2.6 以降で利用可能であり、 utimensat(2) システムコールを使って実装されている。 utimensat(2) はカーネル 2.6.22 以降でサポートされている。

準拠
これらの関数はどの標準でも規定されていない。 Linux 以外では、これらは BSD でのみ利用可能である。

関連項目
utime(2), utimensat(2), symlink(7)

この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。