IPC VS域袜子VS命名管道(IPC vs domain sock vs named pipes)

2019-08-05 11:56发布

什么IPC和Unix域套接字和命名管道之间有什么不同?

我模糊的定义,从各种书籍,但不能得到清晰哪一个应该使用的地方。

Answer 1:

几乎任何方式两个进程互相可以考虑IPC的沟通形式。

例如:

  1. 命名管道(猫file.txt的| grep的富)或命名管道
  2. UNIX域套接字
  3. TCP或UDP套接字
  4. 在Linux网络链路套接字
  5. 各种共享存储器的机制,如内存映射文件
  6. 高速消息传递这样ZeroMQ


Answer 2:

作为qrdl指出,UNIX域套接字和命名管道都是IPC机制。

这两个,命名管道是简单的工作,但远远超过UNIX域套接字不够灵活。 例如,如果您希望潜在每个写作过程中一个以上的阅读过程中,则UNIX域套接字是必须的; 如果你希望阅读过程中停下来,写作过程的执行过程中启动,那么你就需要UNIX域套接字。



Answer 3:

IPC表示进程间通信 。 UNIX域套接字和命名管道只是两个IPC机制,在维基百科中描述:

  • Unix域套接字
  • 命名管道


Answer 4:

由于聚焦的问题,很少更新的功能:

在域名插座,实际通信(数据交换)不使用文件系统,但在缓存内核内存。 默认情况下,它是全双工模式。

命名管道通过其接入点确定,文件保存在文件系统上处理数据。 命名管道默认支持阻塞的读取和写入操作。 但是,它有可能使命名管道通过指定O_NONBLOCK标志,同时打开他们支持非阻塞操作。 命名管道必须打开或者只读或只写。 它不能被打开,读写,因为它是半双工的,单向通道。



文章来源: IPC vs domain sock vs named pipes
标签: c ipc system