LinuxDev 板


LINE

嗯 我最近找到可能的解釋方式了 事實上 當我去 1) 以 vim 打開一個檔案 2) 以 cp 複製一個檔案 以上這兩個動作 其實會改動到 st_atime 但是為什麼之前會發生 st_atime 沒有改變的情形呢 以下是我自己推測的原因 很有可能是 我在短時間之內 對同一個檔案做了很多 operation APUE 中 並沒有特別提到說 access 到 file 的什麼東西 才會改動 st_atime (很有可能是去access file 的 i-node) 如果說 OS 有做 i-node 的 cache, 那麼以上就可以說得通了 因為當我再度的想 access 該檔案的時候 並不用再度去 file 的 i-node 得到 檔案在硬碟的哪個地方 而是可以直接從 i-node cache 中得到檔案的所在資訊 因此 也就不會 access 到 file 的 i-node 更不會 updata st_atime 了 以上的想法 會依不同的 OS 設計 有不同的結果 如果 OS 不做 i-node cache 那 st_atime 不被動到 就真的蠻奇怪的 ※ 引述《wlsabcd ()》之銘言: : ※ 引述《KvsG (KvsG)》之銘言: : : 我那時寫這程式也有同樣的問題... 不過後來我找到原因了... : : 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: 140.112.30.37
1F:推 KENyroj:PUSH! 我們那時好像也有這個結論 XDXD 05/30 15:38
2F:推 wlsabcd:果然讀萬卷書,不如行萬里路;回去試看看 :) 05/30 17:34







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP