首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fsync如何处理目录链接?

fsync如何处理目录链接?
EN

Unix & Linux用户
提问于 2018-01-04 11:26:14
回答 1查看 714关注 0票数 0

来自fsync手册页的以下语句的含义是什么?

调用fsync()并不一定确保包含文件的目录中的条目也到达磁盘。为此,还需要在目录的文件描述符上显式地使用fsync()。

这是否意味着当我在文件上调用fsync时,fsync不会更新目录元数据?

同样的问题的另一个引语是(来自Robert的Linux系统编程书籍):

这两个函数都不保证包含该文件的任何更新目录条目都同步到磁盘。这意味着,如果最近更新了文件的链接,文件的数据可能会成功地到达磁盘,而不是关联的目录条目,从而使文件无法访问。

为什么文件的数据需要到达目录链接?如果我错了,请纠正我,但是目录只包含文件名和该文件的inode号。实际数据在文件中。“数据将到达文件而不是目录链接”的含义是什么?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-01-04 11:56:00

它的意思是:

如果最近更新了文件的链接,文件的数据可能会成功地到达磁盘,但是

关联的目录项可能无法成功到达磁盘。

使文件不可访问。

在创建新文件时,这可能是一个需要考虑的问题。

我会忽略对“文件链接”的概括,除非您知道硬链接正在创建。

这是否意味着当我在文件上调用fsync时,fsync不会更新目录元数据?

是。或者更确切地说,你不能依赖它。(有些实现可能总是在fsync返回之前更新它。)

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/414749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档