繁体   English   中英

如果你已经刷新以使内容幸免于意外重启,你是否需要关闭?

[英]Do you need to call close if you already flush to make content survives unexpected reboot?

我正在写一个文件,并在完成后调用flush()。 是否安全强制退出程序说拉动电源插头而不调用文件上的close()? 调用flush()足以使文件不会损坏。

要确保将内容刷新到操作系统 (并且对其他正在运行的应用程序可见), flush()close()就足够了(也就是说,您不需要两者)。

要确保将内容刷新到磁盘 ,还需要添加os.fsync()os.fdatasync() 请注意,对于新创建(或新重命名)的文件,您需要担心目录是否也被刷新。


顺便说一句 - 如果你真的很确定事情会变成磁盘,那么经典的演示文章Eat My Data值得您花时间和精力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM