管道(pipe)----是用来支持两个或多个进程间进行进程间通信(IPC)
进程间通信(IPC)----每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到。所以进程之间要交换数据必须通过内核。
不同进程看到的公共资源是由操作系统(OS)提供的。
管道(pipe)函数原型为: int pipe(int pipefd[2]) pipefd[2]为输出型参数,是一个数组,存放打开的两个文件描述符。
一般情况下,文件描述符0、1、2为标准输入输出错误,pipefd[0]打开文件描述符3,pipefd[1]
打开文件描述符4。0、1下标分别对应管道的读端和写端。
管道的特点:
(1)管道适用于单向通信,防止用户误操作;
(2)管道目前只用于具有血缘关系的进程,常用于父子进程;
(3)管道的生命周期是:随进程,管道是文件,在进程退出时文件销毁,管道也销毁;
(4)管道是基于字节流的通信方式;
(5)管道内部已经实现了同步,具有数据一致性;
Linux中的管道pipe----管道的四种情况和特点
最新推荐文章于 2024-07-13 10:02:55 发布
本文探讨Linux管道的四种情况:1) 写方不断写入,读方不读,导致缓冲区填满;2) 读方持续读取,写方未写入,父进程等待子进程;3) 写方写入后关闭,读方读取剩余数据直至返回0。这些情况揭示了管道在操作系统中的行为特性。
摘要由CSDN通过智能技术生成