我们正在编写一个包含2个进程的程序。一个进程从串行设备读取数据,另一个进程使用此数据并将其发送到网络。
我一直在研究,有很多方法可以传达这两个过程,似乎最好的选择是管道或消息队列。我喜欢队列,因为网络进程与串行相比不可靠或相对较慢,而且队列允许共享数据类型而不是原始字节流。
我们还需要一个日志来监控每个IPC通信,所以我们想,为什么不使用共享文件?所以proc 1写入文件,proc 2读取文件的每一行,并在处理它时将每一行标记为已发送。我们可以使用文件锁定。
文件方法可以用作缓冲和日志记录。
拥有此文件对于业务逻辑非常有价值。
那么..我们应该选择消息,管道还是文件?
PS。在这种情况下,设备在ARM设备上运行Linux 2.6.3,而硬盘驱动器只是一个SD卡。