【发布时间】:2017-02-23 10:48:59
【问题描述】:
如果我有一个在 c 或 c++ 中写入特定文本文件的程序和一个从同一文本文件读取的程序,我是否可以同时使用这两个程序,以便第一个程序将新数据写入文本文件,其他程序可以读取并检测更改?
任何帮助将不胜感激。
【问题讨论】:
-
使用管道代替文件进行进程间通信
-
是的,这就是为什么您可以同时在多个文本编辑器中打开一个文本文件的原因。
-
@someone_smiley:不,不是。这不是文本编辑器的工作方式。
-
同时,不是真的,但是您可以锁定文件(或文件的一部分)并在其他程序中等待直到锁定被释放,然后读取它。查看here 以获取有关 Windows 和 C++ 的示例。
-
是的,这是可能的。这也很难可靠地执行,因为两个进程以及文件数据和元数据中的各种缓存效果都会使检测新写入的数据变得困难。阅读此IBM Redbook 并搜索“read-behind-write”。
标签: c++ c file file-writing