【发布时间】:2023-03-29 19:38:01
【问题描述】:
在我的嵌入式系统上,我想确保在关闭文件时数据被安全写入 - 如果系统报告数据已保存,用户应该能够立即断电。
我知道执行此操作的正确方法是目录上的fsync()、fclose() 和fsync() (cfr.this blog entry)。但是,在我的情况下,获取目录的文件描述符有点棘手(我必须通过/proc/self/fd 来找回文件名并从那里派生目录)。对我来说,在整个文件系统上执行 syncfs() 会简单得多 - 我知道无论如何这是文件系统上唯一打开的文件。
现在我的问题是:
-
syncfs()就够了吗? - 我需要先
fclose()FILE *(以使目录条目保持最新)吗?或者fflush()够用吗? - 如果需要关闭,是否可以在关闭前将文件描述符
dup()直接用于syncfs()?
【问题讨论】:
标签: linux filesystems fsync