【发布时间】:2015-08-29 13:59:00
【问题描述】:
我需要将大量(日志)数据从多个进程发送到一个主进程。它们都在系统上独立运行。
最好的方法是什么?进程间通信是实现此目的的好方法还是应该使用共享内存?也许还有一种我还不知道的不同方式。
在 Linux 上使用的语言是 C,因为我必须在现有程序中实现它。
你将如何实现它?
【问题讨论】:
标签: c ipc shared-memory
我需要将大量(日志)数据从多个进程发送到一个主进程。它们都在系统上独立运行。
最好的方法是什么?进程间通信是实现此目的的好方法还是应该使用共享内存?也许还有一种我还不知道的不同方式。
在 Linux 上使用的语言是 C,因为我必须在现有程序中实现它。
你将如何实现它?
【问题讨论】:
标签: c ipc shared-memory
除了使用管道/命名管道进行进程间通信See this SO question 和共享内存See this SO question 和So question 用于最快和大尺寸数据的讨论。(它指导使用共享内存(快速和大)和管道(简单)。
您可以尝试使用套接字。 master 监听一个端口,所有 slave 连接到该端口,master 接受连接。但这可能会导致打包和资源开销。
【讨论】:
如果它是单向的,那么我建议您使用管道;简单直接。
如果它是双向的,那么我建议您进行套接字编程,而不是进行其他进程间通信;原因是“你最终会编写锁定机制”;有了 socket,你就不需要处理这些了,而且在你的生活中,在编码方面会更容易。
【讨论】: