一、进程间通信7种方式
1.传统的进程间通信方式
(1)管道
①无名管道:
②有名管道:
(2)③信号
(3)system Ⅴ ===》系统Ⅴ 进程间通信方式 inner Process Comunication
- ④共享内存 (最高效的通信方式)
- ⑤消息队列(消息都有类型 可以选择接收哪种类型的消息)【了解】
- ⑥信号量集(一组信号量 )【了解】
(4)⑦socket ===》套接字
===》本地套接字 网络套接字
前六种包括socket的本地逃跑戒子===》同一主机内进程间通信
最后一种,不同主机间进程间通信
二、管道
1.管道
无名管道 ===》没名字(父子进程间通信)
有名管道===》有名字
- mafifo命令
2.无名管道
int pipe(int pipefd[2]);
(1)功能:创建管道
(2)参数:
pipefd[0]:读端
pipefd[1]:写端
数据从写端写入,读端读出
(3)返回值
成功返回0
失败返回-1&&errno
注意:
管道是有大小的,默认时64kB
管道的读写规则:管道的读端存在,写数据 ,有空间,可以一直写;满了,此时写操作阻塞,等读了4k之后,阻塞消失;