Dan*_*hin 5 python io flush fsync
“python 的 file.flush() 到底在做什么?” 说你应该首先f.flush()然后os.fsync(f)确保数据写入磁盘。
此外,“在 Python 中,close() 是否意味着 flush()?” 声称f.close()意味着flush()。
现在,问题是:我应该做
os.fsync(f)
f.close()
Run Code Online (Sandbox Code Playgroud)
或者,f.close()也意味着os.fsync()?
下面是Python的IO的文档中,Python的文件关闭的文档,和源代码。快速搜索“fsync”未返回任何相关信息。
我通过跟踪测试脚本检查了自己,不,它并不意味着 fsync。f.close() 意味着 f.flush(),因为它必须这样做。f.flush() 将内部(用户空间)缓冲区写入关联的文件描述符,并且在关闭文件描述符后无法写入文件描述符。然而,写入内核缓冲区并不能保证持久性,这就是 fsync 发挥作用的地方。
| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |