unix 中的组播 IPC 选项

Jak*_*ake 7 unix ipc

在以下 IPC 选项列表中,可以执行多播(即 1 个发送方和多个接收方):

  • 信号
  • 半双工管
  • 命名管道
  • System V 消息队列
  • unix 域套接字

编辑

  • 内存映射文件

根据我的理解,命名管道可能是可能的(不确定)。

pil*_*row 4

在概念上没有什么比多播更灵活的了,但有一些限制,某些设施可能会满足您的要求。

信号可以被传送到进程组。您列出的其他 IPC 机制具有发送者/接收者模型,并且不适合多播,禁止本地扩展,如 @Barmar 在评论中指出的 Linux 多播 AF_UNIX 套接字。

如果您只需要向后代进程发送一个“信号”,并且只发送一次,则可以使用继承的 fifo。所有接收器继承 fifo 的读端,但不继承写端。持有写端的进程会在某个时刻关闭它,并且所有接收器将在其读端副本上检测到 EOF。