linux 进程通信

参考地址:http://www.cnblogs.com/xuechao/archive/2011/12/05/2277180.html

表 1. UNIX 中的进程间通信
名称说明范围用途
文件 在典型的 UNIX 文件中读写数据。任意数量的进程都可以互操作。 本地 共享大数据集
管道 使用专用的文件描述符在两个进程之间传输数据。通信只在父进程和子进程之间进行。 本地 简单的数据共享,比如生产者和消费者
命名管道 通过专用的文件描述符在进程之间交换数据。通信可以在同一主机上的任意两个对等进程之间进行。 本地 生产者和消费者或命令-控制,比如 MySQL 和它的命令行查询工具
信号 通过中断通知应用程序某一情况。 本地 无法在信号中传输数据,所以信号主要用于进程管理
共享内存 通过在同一内存段中读写数据共享信息。 本地 任何类型的协作,尤其适合需要安全性的情况
套接字 完成特殊的设置过程之后,使用一般的输入/输出操作传输数据。 本地或远程 FTP、ssh 和 Apache Web Server 等网络服务

正如前面提到的,每种技术满足不同的需求。假设多个进程之间的协作的复杂性大体相当,每种方法的优点和缺点如下:

原文地址:https://www.cnblogs.com/wangkangluo1/p/2287467.html