快速掌握Linux(6)(IPC机制)(无名管道)(有名管道)
2026/9/2 5:24:18 网站建设 项目流程

3.IPC机制(进程间通信)

IPC 进程间通信 interprocess communicate

三大类:

同一主机进程间通信

1、古老的通信方式

无名管道

有名管道

信号

2、IPC对象通信 system v

共享内存*

消息队列

信号量集

主要用在不同主机进程间通信

3、socket通信

网络通信

1)无名管道

无名管道: 只能用在具有亲缘关系的进程间通信(父子进程)

有名管道: 可以用在同一主机,任意进程间通信。

(1)操作流程

1.创建并打开管道pipe()

2.读管道:read();

3.写管道:write();

4.关闭管道:close();

int pipe(int pipefd[2]);

功能:创建并打开一个无名管道

参数:

pipefd:管道读端和写端的文件描述符

pipefd[0]读端

pipefd[1]写端

返回值:

成功:0

失败:-1

(2)管道的特点

管道本质是内核中的一段缓冲区,默认64K字节,遵循队列存储方式(FIFO)。

1.写阻塞:当管道的读写端都存在时,管道写满数据时,发生写阻塞。

2.读阻塞:当管道的读写端都存在时,管道为空时,读管道发生读阻塞。

3.读返回0:当管道没有写端,只有读端时,管道中有数据则读出数据,无数据时,不再读阻塞,读

管道直接返回0字节。

4.管道破裂:当管道没有读端,向管道中写数据,发生管道破裂异常。

2)有名管道

有名管道:可以用在同一主机,任意进程间通信。

1.创建有名管道文件: mkfifo();

2.打开管道文件open();

3.写管道文件:write();

4.读管道文件:read();

5.关闭管道文件:close();

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询