当您在文件上调用fsync时,会刷新其缓冲区并确保将其写入磁盘。
但是如果您的程序新创建了一个文件,那么需要将其记录在父目录的元数据中。因此,即使您fsync
一个文件,也不能保证它在文件系统中是持久的。您还需要刷新父目录的缓冲区。
是否有一个简单的电话,例如fsync_parent(fd)
即可完成此操作?如果?
(查看this问题,似乎没有C标准方法来获取文件的父目录)
答案 0 :(得分:2)
文件没有规范的“父目录”。文件可以包含任意数量的链接,也可以没有任何链接。如果您需要包含要同步的文件(链接)的特定目录,则必须自己跟踪。