1

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

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

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

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

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

所以.. 我们应该选择消息、管道还是文件?

PS。本例中的设备在 ARM 设备上运行 Linux 2.6.3,而硬盘驱动器只是一张 SD 卡。

4

1 回答 1

0

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

于 2014-01-12T19:39:45.070 回答