您好,登錄后才能下訂單哦!
每個文件維護了三個時間字段,它們的目的如下表所示:
Field | Description | Example | ls(1) option |
st_atime | last-access time of file data | read | -u |
st_mtime | last-modification time of file data | write | default |
st_ctime | last-change time of i-node status | chmod, chown | -c |
第118頁的示例代碼:
$ cat 4_21.c #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <fcntl.h> #include <utime.h> int main(int argc, char *argv[]) { int i, fd; struct stat statbuf; struct utimbuf timebuf; for (i = 1; i < argc; i++) { if (stat(argv[i], &statbuf) < 0) { printf("%s: stat error", argv[i]); continue; } if ((fd = open(argv[i], O_RDWR | O_TRUNC)) < 0) { printf("%s: open error", argv[i]); continue; } close(fd); timebuf.actime = statbuf.st_atime; timebuf.modtime = statbuf.st_mtime; if (utime(argv[i], &timebuf) < 0) { printf("%s: utime error", argv[i]); continue; } } exit(0); }
運行結(jié)果為:
$ gcc -g -o 4_21 4_21.c # 查看最后一次修改的時間 $ ls -l foo bar -rw------- 1 richard richard 0 Dec 4 2014 bar -rw------- 1 richard richard 0 Dec 4 2014 foo # 查看最后一次訪問的時間 $ ls -lu foo bar -rw------- 1 richard richard 0 Mar 20 20:41 bar -rw------- 1 richard richard 0 Mar 20 20:41 foo # 打印當前時間 $ date Sat Aug 29 13:13:26 CST 2015 # 執(zhí)行程序 $ ./4_21 foo bar # 檢查結(jié)果 $ ls -l foo bar -rw------- 1 richard richard 0 Dec 4 2014 bar -rw------- 1 richard richard 0 Dec 4 2014 foo # 檢查最后訪問時間 $ ls -lu foo bar -rw------- 1 richard richard 0 Mar 20 20:41 bar -rw------- 1 richard richard 0 Mar 20 20:41 foo # 檢查最后狀態(tài)改變時間 $ ls -lc foo bar -rw------- 1 richard richard 0 Aug 29 13:13 bar -rw------- 1 richard richard 0 Aug 29 13:13 foo
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。