快速掌握Linux(6)(IPC机制)(无名管道)(有名管道)
发布时间:2026/9/2 5:24:18 作者:尧图编辑部 阅读量:1,286
(IPC机制)(无名管道)(有名管道))
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();