【发布时间】:2017-04-21 13:26:17
【问题描述】:
在 linux 中,如果我有并行进程使用 w/w+ 模式写入同一个文件。 从两个进程写入的数据是否有可能混淆。或者它是否总是只包含一个进程在给定时间的数据,因为 w 模式会截断现有文件?
【问题讨论】:
-
不完全是答案,但相关。 stackoverflow.com/questions/12942915/…
-
您提供的链接,如果我理解正确的话,它会处理像我的示例中那样附加而不是覆盖的情况,
-
这里的问题不一定是多个进程不能写入文件,因为它们可以。然而,问题是文件写入是在 python 或该系统上实现的。例如,
fopen有自己的内部 I/O 缓冲区,可能会覆盖其他缓冲区。在我的例子中,它显示最后一个要关闭的流在那里得到了它的内容,但是你可以通过使用file.flush()和file来允许它们覆盖和写入整个文档(一次一个字母) 987654325@对象。 -
我明白了。这就是为什么我在linux中专门询问python的原因。我假设在 python 中它应该以相同的方式实现它,而不管操作系统如何。正确的?如果是这样,我很好奇在这种情况下会发生什么
-
如果重要的话,我在 Debian 8.1 上进行了测试。