在Linux中使用文件作为IPC?

时间:2013-09-10 20:40:18

标签: linux ipc

我们正在编写一个包含2个进程的程序。一个进程从串行设备读取数据,另一个进程使用此数据并将其发送到网络。

我一直在研究,有很多方法可以传达这两个过程,似乎最好的选择是管道或消息队列。我喜欢队列,因为网络进程与串行相比不可靠或相对较慢,而且队列允许共享数据类型而不是原始字节流。

我们还需要一个日志来监控每个IPC通信,所以我们想,为什么不使用共享文件?所以proc 1写入文件,proc 2读取文件的每一行,并在处理它时将每一行标记为已发送。我们可以使用文件锁定。

文件方法可以用作缓冲和日志记录。

拥有此文件对于业务逻辑非常有价值。

那么..我们应该选择消息,管道还是文件?

PS。在这种情况下,设备在ARM设备上运行Linux 2.6.3,而硬盘驱动器只是一个SD卡。

1 个答案:

答案 0 :(得分:0)

在您的情况下,在休眠或关闭应用程序时,使用mmap并将缓冲区刷新到文件系统可能也是合适的。与套接字或管道相比,实现可能更复杂。