使用close()或fclose()(例如)关闭文件时,Linux是否保证将文件写回到(持久)光盘上?
close()
fclose()
我的意思是,如果close()返回0,然后立即断电,是否可以保证先前写入的数据持久存在,即持久性?
该fsync()系统调用确实提供了这种保证。关闭文件是否也足够?
fsync()
我目前找不到任何能以某种方式要求任何权利的东西。
问题2:
如果close()隐式地做了一个fsync(),是否有办法告诉它不这样做?
来自“ man 2 close”:
man 2 close
成功关闭并不能保证数据已成功保存到磁盘,因为内核延迟写入操作。
手册页指出,如果要确保数据位于磁盘上,则必须自己使用fsync()。