使用文件i / o进行的更改不可见

时间:2012-04-11 02:25:23

标签: unix transactions io

我有一个python脚本打开一个文件并写入一堆东西然后关闭它。我通过连接到ssh来运行这个python文件。另一方面,我有另一个ssh终端连接到同一台机器,我想监视运行脚本对文件的更改/写入。但是,当我执行cat“file_name”或类似的东西时,该文件似乎是空的。只有在脚本终止后,我才会看到这些东西。

首先,这与交易的原子性属性有关吗?

第二,无论如何都要实现监控我的文件?

1 个答案:

答案 0 :(得分:0)

你的档案有多大?

如果它很小(对于一些模糊的小定义,但可能低于4 KiB),则可能是您的Python脚本正在缓冲它在内存中所做的更改,并且只在您关闭文件时写入磁盘。

如果您的文件很大(例如,大于64 KiB),那么这不是解释。在中等规模,相对不太可能是解释;在1 KiB或更小的真正小尺寸下,这是非常合理的。

考虑寻找刷新文件更改或内存映射文件的方法。