Re: [問題] 關於 file time

看板LinuxDev作者時間18年前 (2007/05/28 21:41), 編輯推噓6(600)
留言6則, 6人參與, 最新討論串3/5 (看更多)
※ 引述《KvsG (KvsG)》之銘言: : ※ 引述《coo1be (我不會開卡丁車啦)》之銘言: : : 大家好 我是個使用 linux 的新手 : : 關於 file time 今天我在使用 stat 時候 突然發現幾個問題無法解釋 想請教大家 : : 1) 當我用 vim 開啟一個檔 接著不存檔 離開 或 : : 2) cp 該檔案 : : 以上兩個動作 都不會動到原檔案的 atime mtime ctime : : 但我印象中 atime 應該要被變更才是阿 (因為 read) : : 因此我想請問的是 上面那兩個動作 在linux中 是怎麼被達成的呢 : : 居然不會動到 atime mtime ctime. 煩請大家解答 謝謝 : 我那時寫這程式也有同樣的問題... 不過後來我找到原因了... : CreateTime & ModifyTime 很容易理解吧... AccessTime 跟我們的認知卻不一樣... : Access 我們會以為是去讀取的時間... 其實不是... : Access 的意思是有去"動到 i-node 的時間" ... : 所以你一直打開 執行 複製... aTime是不會變的... : 你去 chmod chown ... aTime 就會變了... : 印象中是這樣啦.. ^^" 那時寫 stat 的測試程式不知跑哪去了沒得試... : 如果不對請指正 ^^" : 如果你是想知道一個檔最後一次被讀取/執行的時間的話... : 說真的我也不知道... 找到資料的話交流一下吧... XD 翻了一下APUE 第一版 (Chapter 4.18, 4.19) 裡面有很詳細的解釋, (之前沒用到都忘光了,感謝各位的發問讓我有複習的機會) 這本書年代已經很久遠了,但也應該不會錯 File 的時間,可分為 st_atime, st_mtime, st_ctime st_atime: last-access time of file data 檔案內容最後被讀取的時間,可由 ls -lu 觀察到 st_mtime: last-modification time of the file data 檔案內容最後被更改/讀取的時間,可由 ls -l 觀察到 st_ctime: last-change time of i-node status i-node 最後被修改的時間,可由 ls -lc 觀察到 這三的資料結構可以由 stat, fstat, lstat system call 得到。 所以C大、K大的問題,知道檔案最後讀取時間,可由 ls - lu 命令, 或者由程式中呼叫 stat, fstat, lstat 觀察到。 ======================================================================== 另外,哪些 function 會更改這三個資料結構的的內容,以下列表 Funtion Referenced file Parent directly Note of referenced file ---------------- ------------------- a m c a m c ---------------- ------------------- chmod, fchmod Y chown, fchown Y creat Y Y Y Y Y O_CREAT new file creat Y Y O_TRUNC existing file exec Y lchown Y link Y Y Y mkdir Y Y Y Y Y mkfifo Y Y Y Y Y open Y Y Y Y Y O_CREAT new file open Y Y O_TRUNC existing file pipe Y Y Y read Y remove Y Y Y remove file = unlink remove Y Y remove directly = rmdir rename Y Y Y for both arguments rmdir Y Y truncate,ftruncate Y Y unlink Y Y Y utime Y Y Y write Y Y =============================================================================== 還有直接修改 st_atime, st_mtime 的 system call: utime =============================================================================== 以上,和各位先進交流 ref: Advanced Programming in the UNIX Environment, 1st Edition W. Richard Stevens -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.105.132 ※ 編輯: wlsabcd 來自: 203.70.105.132 (05/28 21:52)

05/28 22:38, , 1F
非常詳細..:)
05/28 22:38, 1F

05/28 22:56, , 2F
推一下...
05/28 22:56, 2F

05/28 23:51, , 3F
推推推
05/28 23:51, 3F

05/29 16:07, , 4F
這個讚,大推薦!
05/29 16:07, 4F

05/29 20:17, , 5F
<(_ _)>
05/29 20:17, 5F

05/30 23:15, , 6F
這本書必備阿 (其實我正在學XD)
05/30 23:15, 6F
文章代碼(AID): #16MjmdoO (LinuxDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 3 之 5 篇):
文章代碼(AID): #16MjmdoO (LinuxDev)