#include <sys/types.h> #include <utime.h> int utime(const char *filename, const struct utimbuf *times); #include <sys/time.h> int utimes(const char *filename, const struct timeval times[2]);
utime() システムコールは filename で示される inode のアクセス時刻と修正時刻を times 中の actime と modtime にそれぞれ変更する。
times が NULL の場合、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。
タイムスタンプの変更は以下のいずれかの場合に許可される。 プロセスに適切な特権がある場合、 実効 (effective) ユーザー ID がファイルのユーザー ID と等しい場合、 times が NULL かつ、プロセスがファイルへの書き込み許可を持っている場合。
構造体 utimbuf は以下に示すようになっている。
struct utimbuf {
time_t actime; /* アクセス時刻 */
time_t modtime; /* 修正時刻 */ };
utime() システムコールは 1 秒の分解能でタイムスタンプを指定することができる。
utimes() は utime() と同様であるが、 times 引数が構造体ではなく配列を参照する。 この配列の要素は timeval 構造体で、タイムスタンプの指定を 1 マイクロ秒の分解能で行うことができる。 構造体 timeval は以下に示す通りである。
struct timeval {
long tv_sec; /* 秒 */
long tv_usec; /* マイクロ秒 */ };
times[0] は新しいアクセス時刻を、 times[1] は新しい修正時刻を規定する。 times が NULL の場合、 utime() 同様、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。
utimes(): 4.3BSD, POSIX.1-2001.
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]