futimes(3) ファイルのタイムスタンプを変更する

Other Alias

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 以降でサポートされている。

属性

マルチスレッディング (pthreads(7) 参照)

関数 futimes() と lutimes() はスレッドセーフである。

準拠

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

この文書について

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