有没有办法调用fsync / flush fd的父级?

时间:2018-03-01 23:45:28

标签: c buffer

当您在文件上调用fsync时,会刷新其缓冲区并确保将其写入磁盘。

但是如果您的程序新创建了一个文件,那么需要将其记录在父目录的元数据中。因此,即使您fsync一个文件,也不能保证它在文件系统中是持久的。您还需要刷新父目录的缓冲区。

是否有一个简单的电话,例如fsync_parent(fd)即可完成此操作?如果?

(查看this问题,似乎没有C标准方法来获取文件的父目录)

1 个答案:

答案 0 :(得分:2)

文件没有规范的“父目录”。文件可以包含任意数量的链接,也可以没有任何链接。如果您需要包含要同步的文件(链接)的特定目录,则必须自己跟踪。