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 以降でサポートされている。
マルチスレッディング (pthreads(7) 参照)
関数 futimes() と lutimes() はスレッドセーフである。
これらの関数はどの標準でも規定されていない。 Linux 以外では、これらは BSD でのみ利用可能である。
utime(2), utimensat(2), symlink(7)
この man ページは Linux man−pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man−pages/ に書かれている。