stat()/ fstat()函数最终是打开还是读取文件来获取属性?

时间:2015-06-22 19:30:18

标签: file linux-kernel linux-device-driver flash-memory

在我的程序中,有一个功能可以频繁调用stat()来获取闪存存储中文件的属性。有时在关机后重新启动文件内容丢失。我注意到stat()最终调用Linux内核中的文件系统驱动程序。

我的问题是:Linux内核将打开或读取文件以获取文件属性吗?在stat()或fstat()期间关闭电源是否可能损坏闪存中的文件?

1 个答案:

答案 0 :(得分:2)

所有stat()调用都是检索文件的i节点的内容;文件本身没有被触及。但是,文件的i节点将在内存中,并且文件以任何方式更新[即使由此或其他进程保持打开],文件mtime等也需要更新并且i-node将得到更新,也许是错误的。噗!没有文件。

但这种行为并不是flash独有的。