日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

文件时间与系统时间

發布時間:2024/2/28 windows 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件时间与系统时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

每個文件是有三個時間的,分別是st_atime,st_mtime和st_ctime。

st_atime: 最后一次訪問時間,如果使用read函數讀某個文件,會改變文件的這個時間

st_mtime:最后一次修改時間,如果使用write函數寫某個文件,會改變文件的這個時間

st_ctime:最后一次修改文件權限時間,如果使用chmod修改了文件的權限,會改變這個時間


怎樣獲取這三個時間呢?

使用stat族函數,man 2 stat可以查看這一族函數,有stat,fstat,lstat

[plain]?view plaincopy
  • ???????int?stat(const?char?*path,?struct?stat?*buf);??
  • ???????int?fstat(int?fd,?struct?stat?*buf);??
  • ???????int?lstat(const?char?*path,?struct?stat?*buf);??
  • ??
  • 從函數原型可知,stat函數第一個參數需要一個地址,第二個參數需要一個結構體指針,??
  • 下面我們寫個程序來獲取當前文件的mtime,?同時獲取當前的系統時間.??
  • <pre?name="code"?class="plain">int?main(void)??
  • {??
  • ????struct?stat?stbuf;??????????????????//這個結構體可以man?2?stat的手冊中看到,有詳細成員列表??
  • ????struct?tm?filetime;?????????????????//這個是存放時間的結構體,用來存放文件的時間,man?localtime可以??
  • ????????????????????????????????????????//看到該結構體里的詳細內容??
  • ????struct?tm?nowtime;??????????????????//存放當前系統時間??
  • ????time_t?now;?????????????????????????//time_t其實是長整型,用來存放時間??
  • ????int?fd;?????????????????????????????//文件描述符??
  • ????//stat("./test",?&stbuf);???????????//可以使用這種方式將文件信息存放到stbuf中??
  • ??
  • ????fd?=?open("./test",?O_RDONLY);??????//也可以用這種間接的方式??
  • ????if(fd?<?0)??
  • ????{?????
  • ????????perror("open");??
  • ????????return?-1;???
  • ????}?????
  • ??
  • ????fstat(fd,?&stbuf);??
  • ??
  • ????localtime_r(&stbuf.st_mtime,?&filetime);//使用localtime_r函數將文件的mtime存放到filetime中??
  • ????time(&now);?????????????????????????????//獲取當前系統時間??
  • ????localtime_r(&now,?&nowtime);????????????//將系統時間存放到nowtime中??
  • ????printf("file?tm_min?is?[%d]?tm_sec?is?[%d]\n",?filetime.tm_min,?filetime.tm_sec,?filetime);??
  • ??
  • ????printf("now?tm_min?is?[%d]?tm_sec?is?[%d]\n",?nowtime.tm_min,?nowtime.tm_sec,?nowtime);??
  • ????return?0;??
  • }??
  • </pre><br>??
  • 其中的localtime_r是將time_t的時間轉化為tm結構體的時間,更方便我們閱讀,且存儲在我們要求的地址中<br>??
  • 還有另一個函數localtime,功能是一樣的,但是它只有一個參數,它會自動分配一個空間存放轉化為tm結構體的時間<br>??
  • 這樣就會遇到一個問題,如果要使用兩次或以上localtime,只能保存最后一個調用函數時轉化的時間!<br>??
  • <br>??
  • 另外stat可以獲取大量有關文件的信息,可以自行查閱manpage<br>??
  • ?<br>??
  • <p></p>??
  • <pre></pre>??
  • <br>??
  • <br>??
  • <p></p> ?
  • 總結

    以上是生活随笔為你收集整理的文件时间与系统时间的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。