回答
几乎任何方式两个进程相互沟通可以被视为一种形式的IPC。
例如:
- 命名管道(猫file.txt的| grep的富)或Named Pipes
- UNIX域套接字
- TCP或UDP套接字
- Netlink Sockets on Linux
- 各种共享内存机制如内存映射文件
- 高速消息传递,例如ZeroMQ
IPC代表进程间通信。 UNIX域套接字和命名管道只是两个IPC机制,在维基百科中描述:
由于qrdl指出,UNIX域套接字和命名管道都是IPC机制。
在这两个命名管道中,使用起来比较简单,但比UNIX域套接字灵活得多。例如,如果您希望每个写入过程都有多个读取过程,那么UNIX域套接字是必须的;如果您希望在执行写入过程期间读取过程停止并开始,那么您将需要UNIX域套接字。
感谢聚焦的问题,很少更新的功能:
在域套接字,实际通信(数据交换)不使用文件系统,但在缓存内核内存。默认情况下,它是全双工模式。
命名管道由其接入点标识,该接入点是文件系统上保存的用于处理数据的文件。默认情况下命名管道支持阻塞的读取和写入操作。但是,可以通过在打开命名管道时指定O_NONBLOCK标志来使命名管道支持非阻塞操作。命名管道必须以只读或只写方式打开。它不能打开进行读写,因为它是半双工的单向通道。
OP被问及域套接字。域套接字通常在管道上实现,因此它们与管道一样快。域套接字非常有用,因为它们与网络套接字具有完全相同的接口(只是不同的套接字系列),所以如果您的应用程序支持套接字,并且您发现双方都位于同一台计算机上,则可以轻松切换到域套接字以加快速度(X Windows就是这样)。所以你的回答是不正确的。 – qrdl 2009-09-13 05:28:00
希望它更新得很好。 – 2009-09-13 15:22:02
- 1. 命名管道IPC
- 2. IPC安全命名管道
- 3. Qt IPC - 命名管道
- 4. 命名管道与IPC的COM对比
- 5. python与IPC和子进程命名管道混乱
- 6. IPC的性能:命名管道VS套接字
- 7. 命名管道与Windows上IPC的UDP对比
- 8. 命名管道示例
- 9. 从命名管道
- 10. 命名管道Matlab
- 11. 没有子进程的命名管道
- 12. WCF命名管道小例子
- 13. 在C中使用管道的命名管道块子进程
- 14. 管道ffmpeg输出到命名管道
- 15. 与StreamWriter异步使用命名管道
- 16. 阅读FILESTREAM(命名管道)与在Smalltalk
- 17. 使用Windows命名管道与ffmpeg管道
- 18. 管理子域名
- 19. 在VB.net命名管道问题的WCF
- 20. C#隧道/大桥从HTTP到袜子
- 21. 子域名接管域名请求
- 22. IPC:在两个程序之间在C++中使用命名管道
- 23. 用于使用JNI的Windows'命名管道的Java程序的IPC
- 24. 在命名管道和套接字之间进行简单切换的IPC
- 25. 命名管道问题
- 26. NSIS中的命名管道
- 27. Powershell命名管道安全?
- 28. 命名管道的安全
- 29. 单向命名管道
- 30. WCF命名管道2009年
该线程似乎得到更多的关注:http://stackoverflow.com/questions/9475442/unix-domain-socket-vs-named-pipes – schmijos 2013-03-23 10:04:14