2015-06-22 23 views
1

在我的程序中有一個函數可以經常調用stat()來獲取閃存中文件的屬性。有時在斷電後重新啓動文件的內容丟失。我注意到stat()最終調用Linux內核中的文件系統驅動程序。stat()/ fstat()函數是否最終打開或讀取文件以獲取屬性?

我的問題是:Linux內核fs打開或讀取文件以獲取文件屬性?在stat()或fstat()過程中關閉電源可能會損壞閃存中的文件嗎?

回答

2

所有stat()調用的作用是檢索文件的i節點的內容;文件本身沒有被觸及。但是,該文件的i節點將存儲在內存中,並且該文件以任何方式更新(即使通過該進程或其他進程保持打開狀態),文件mtime等將需要更新,並且i節點將得到更新,也許是錯誤的。噗!無文件。

但是,這種行爲不是唯一的閃光。