Manpages

名 前

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]);

説 明

備 考 : 最 近 の ア プ リ ケ ー シ ョ ン の 場 合 、 utimensat(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) の フ ァ イ ル に 現 在 時 刻 以 外 の タ イ ム ス タ ン プ を 設 定 し た り す る こ と は 、 許 可 さ れ て い な い 。

関 連 項 目

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

こ の 文 書 に つ い て

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