【发布时间】:2012-01-31 15:37:03
【问题描述】:
如果我想管理“完美”的并发文件访问,在 C(Linux 和 Windows)中 喜欢:
- A 打开一个文件并开始写一些东西
- B 同时打开同一个文件并等待 A 结束其工作
- A 关闭文件。
- B 现在可以写了。
- ...等等...
你认为我必须使用 mutex 吗? O_EXCL 也应该工作吗? 更好的选择?
【问题讨论】:
标签: c file concurrency mutex
如果我想管理“完美”的并发文件访问,在 C(Linux 和 Windows)中 喜欢:
你认为我必须使用 mutex 吗? O_EXCL 也应该工作吗? 更好的选择?
【问题讨论】:
标签: c file concurrency mutex
A 和 B 是线程还是程序?
如果它们是单独的程序,最好只让一个文件同时打开以进行写入,即使您设法在两个应用程序之间同步访问,您也必须非常小心刷新缓冲区以确保它们确实在您期望的状态。
【讨论】:
如果 A 和 B 是不同的线程,可以使用互斥锁或信号量来实现它们之间的同步。你可以在http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html找到更多关于 mutext 的信息
【讨论】: