小编典典

Linux是否保证在close()之后将文件内容刷新到磁盘上?

linux

使用close()fclose()(例如)关闭文件时,Linux是否保证将文件写回到(持久)光盘上?

我的意思是,如果close()返回0,然后立即断电,是否可以保证先前写入的数据持久存在,即持久性?

fsync()系统调用确实提供了这种保证。关闭文件是否也足够?

我目前找不到任何能以某种方式要求任何权利的东西。


问题2:

如果close()隐式地做了一个fsync(),是否有办法告诉它不这样做?


阅读 1015

收藏
2020-06-02

共1个答案

小编典典

来自“ man 2 close”:

成功关闭并不能保证数据已成功保存到磁盘,因为内核延迟写入操作。

手册页指出,如果要确保数据位于磁盘上,则必须自己使用fsync()。

2020-06-02