UTIME
Section: Linux Programmer's Manual (2)
Updated:  2017-09-15
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]);
 
説明
備考: 最近のアプリケーションの場合、 utimensat(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()  同様、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。
 
返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。
 
エラー
- EACCES
 - 
path を構成する何れかのディレクトリに検索許可がない (path_resolution(7)  も参照すること)。
 - EACCES
 - 
times が NULL である。 または、呼び出し元の実効ユーザー ID がファイルの所有者と一致しない。
または、呼び出し元がそのファイルへの書き込み許可を持たず、 特権も持っていない (Linux の場合、ケーパビリティ
CAP_DAC_OVERRIDE も CAP_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), touch(1), futimesat(2), stat(2), utimensat(2),
futimens(3), futimes(3), inode(7)
 
この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/ に書かれている。
 Index
- 名前
 - 
 - 書式
 - 
 - 説明
 - 
 - 返り値
 - 
 - エラー
 - 
 - 準拠
 - 
 - 注意
 - 
 - 関連項目
 - 
 - この文書について
 - 
 
This document was created by
man2html,
using the manual pages.
Time: 16:46:43 GMT, November 24, 2023