c - 并行运行的程序,用 C 读/写

标签 c io

我正在考虑一组 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/

相关文章:

java - java中删除文本文件中的某个字符

java - 如何使用java更新和删除csv文件?

c - 在C中读取单精度使用 double 变量

c++ - 如何将数组从 C/C++ 返回到 Idris?

c - 用C语言演示虚拟内存

c - 如何在 C 中对结构体进行 malloc 和存储变量?

c++ - basic_streambuf::setbuf 应该设置哪个缓冲区?

C 将 emacs 中的十六进制值转换为不正确的值

c - 用 C 调整数组大小

javascript - 你如何编写非阻塞模块?