溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

文件時間(Unix環(huán)境高級編程)

發(fā)布時間:2020-07-07 13:38:09 來源:網(wǎng)絡 閱讀:398 作者:bigstone2012 欄目:系統(tǒng)運維

每個文件維護了三個時間字段,它們的目的如下表所示:

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


向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI