我正在考虑一组 4 个程序:(Prog1、Prog2、Prog3、Prog4) 与 4 个文件(FileA、FileB、FileC、FileD)进行交互
- Prog1:写入(追加)到 FileA
- Prog2:读取文件 A 并写入(追加)到文件 B
- Prog3:读取文件A,并写入(追加)到文件C
- Prog4:读取文件 B,并写入(追加)到文件 D
或可能是 Prog1,也可能在启动时读取,并连续写入以表示 FileX。
现在所有 4 个程序将同时运行(可能通过网络运行,但这无关紧要)。这行得通吗?
我是否需要设置“Strobes”或“busy”信号(我可以用 mkdir 和 rmdir 来设置)?
最佳答案
您的问题是同步读/写吗?写入是更有问题的部分,因为它们修改了内容。此外,写入的性质(在末尾追加、在开头追加等)可能会使您的情况进一步复杂化。我有一种感觉,您可能需要查找“文件锁”/互斥锁等。很大程度上取决于您计划在其上运行这些的 OS(-es)。 Boost.Interprocess
是一个很好的起点。
关于c - 并行运行的程序,用 C 读/写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1584861/