【发布时间】:2015-07-13 09:43:52
【问题描述】:
我正在编写一个对文件进行操作的程序(仅读取文件),而另一个程序正在写入该文件(我无法控制它使用事件并且我不知道文件的内容)。我想要一种方法来知道该程序何时完成编写,以停止我的程序对文件的操作。这两种方法我都用过,但不知道哪一种可靠,性能更好:
1-将文件重命名为其他名称,如果成功,将其重命名为原始名称。
2-flush file ,如果文件大小有一段时间没有改变(例如 5 秒)然后停止操作。
哪个更好?有没有更好的方法(更可靠、性能更高)?
我在 c++ 中使用 Windows 7 和 qt5.2(或 Visual Studio)。
【问题讨论】:
-
“对文件进行操作”是什么意思,它包括读写操作还是仅包括读取操作?
-
@GingerJack ,它只读取文件。
-
您可以使用IPC进行有效沟通。您的 Writer 程序设置事件,您的阅读器程序将等待它,当阅读器程序被触发时,它应该停止阅读并关闭文件的句柄。
-
你的环境是 linux、Mac OS 还是 windows
-
你检查了吗this answer?