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