UTIME(2) | Linux Programmer's Manual | UTIME(2) |
名前
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 中の actime と modtime にそれぞれ変更する。struct utimbuf {
time_t actime; /* アクセス時刻 */
time_t modtime; /* 修正時刻 */
};
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() を廃止予定としている。注意
Linux では、不変 (immutable) ファイルのタイムスタンプを変更したり、追加専用 (append-only) のファイルに現在時刻以外のタイムスタンプを設定したりすることは、許可されていない。関連項目
chattr(1), futimesat(2), stat(2), utimensat(2), futimens(3), futimes(3)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2008-08-06 | Linux |