进程间通信
作者:互联网
进程间通信:ipc
包括:管道,信号量,消息队列,共享内存,套接字
一.管道:有名管道,无名管道
管道可以用来在两个进程之间传递数据,如: ps -ef | grep “bash”, 其中‘|’就是管道,其作用就是将 ps 命令的结果写入管道文件,然后 grep 再从管道文件中读出该数据进行过滤。
思考: 如果进程 a 要将从键盘获取的数据循环传递给另一个进程 b, 用已具备的知识思考应该如何完成
1.
p:代表的是管道文件
2.管道的特点 :(重点)
无论有名还是无名,写入管道的数据都在内存中
管道是一种半双工通信方式(通信方式有单工、半双工、全双工)
有名和无名管道的区别:有名可以在任意进程间使用,而无名主要在父子进程间
3.管道文件只能以只读方式或只写方式打开
读写情况:
1写端关闭,读,int n=read返回值n==0
2 读端关闭,写,write会触发信号SIGPIPE
管道为空,读操作,堵塞
管道为满,写操作,堵塞
有名管道,需要读写两个进程通知打开才可以
无名管道, pipe()
信号量:
P v
标签:文件,无名,间通信,管道,有名,进程 来源: https://www.cnblogs.com/xpei-1124/p/14748541.html