我正在写文件,完成后调用flush()。在不调用文件的close()的情况下强制拔出电源插头退出程序是否安全?调用flush()足以确保文件不会损坏。
答案 0 :(得分:3)
为确保将内容刷新到操作系统(并且对其他正在运行的应用程序可见),flush()
或close()
就足够了(也就是说,您不需要两者。
要确保将内容刷新到磁盘 ,还需要添加os.fsync()
或os.fdatasync()
。请注意,对于新创建(或新重命名)的文件,您需要担心目录是否也被刷新了。
顺便说一句-如果您真正想确保事情顺利完成,经典的演示文稿Eat My Data值得您花费时间和精力。