在我的程序中,有一个函数可以频繁调用stat()
来获取闪存中文件的属性。有时在关闭电源并重新启动后,文件的内容会丢失。我注意到stat()
最终调用了Linux内核中的文件系统驱动程序。
我的问题是:Linux内核fs会打开或读取文件以获取文件属性吗?stat()或fstat()过程中的电源关闭是否可能损坏闪存中的文件?
stat()调用所做的只是检索文件i-node的内容;文件本身没有被触碰。然而,文件的i节点将在内存中,如果文件以任何方式更新(即使通过此进程或另一进程保持打开),则需要更新文件mtime等,i节点将被更新,可能是错误的。呜呜!没有文件。
但这种行为并不是flash独有的。