UTIME

Section: Linux Programmer's Manual (2)
Updated: 2008-08-06
Index JM Home Page roff page
 

名前

utime, utimes - ファイルの最終アクセス時刻と修正時刻を変更する  

書式

#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 中の actimemodtime にそれぞれ変更する。

timesNULL の場合、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。

タイムスタンプの変更は以下のいずれかの場合に許可される。 プロセスに適切な特権がある場合、 実効 (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() 同様、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。  

返り値

成功した場合 0 が返る。失敗した場合 -1 が返り、 errno がエラーの内容に従って設定される。  

エラー

EACCES
path を構成する何れかのディレクトリに検索許可がない (path_resolution(7) も参照すること)。
EACCES
times が NULL である。 または、呼び出し元の実効ユーザ ID がファイルの所有者と一致しない。 または、呼び出し元がそのファイルへの書き込み許可を持たず、 特権も持っていない (Linux の場合、ケーパビリティ CAP_DAC_OVERRIDECAP_FOWNER も持っていない)。または、
ENOENT
filename が存在しない。
EPERM
times が NULL でなく、かつ呼び出し元の実効 UID がファイルの所有者と一致せず、 かつ呼び出し元が特権を持っていない (Linux の場合、ケーパビリティ CAP_FOWNER を持っていない)。
EROFS
path が読み込み専用のファイルシステム上にある。
 

準拠

utime(): SVr4, POSIX.1-2001. POSIX.1-2008 は utime() を廃止予定としている。
utimes(): 4.3BSD, POSIX.1-2001.  

注意

Linux では、不変 (immutable) ファイルのタイムスタンプを変更したり、 追加専用 (append-only) のファイルに現在時刻以外のタイムスタンプを 設定したりすることは、許可されていない。

libc4 と libc5 では、 utimes() は単に utime() のラッパー (wrapper) である。 そのため秒以下を指定することはできない。  

関連項目

chattr(1), futimesat(2), stat(2), utimensat(2), futimes(3), futimens(3)


 

Index

名前
書式
説明
返り値
エラー
準拠
注意
関連項目

This document was created by man2html, using the manual pages.
Time: 03:27:01 GMT, April 25, 2010