一、管道
参考文章:
链接: https://blog.youkuaiyun.com/skyroben/article/details/71513385.
管道是基于文件描述符的通信方式。当一个管道建立时,它会创建两个文件描述符fd[0]和fd[1]。其中fd[0]固定用于读管道,而fd[1]固定用于写管道。
①半双工通信模式。
②只用于具有亲缘关系的进程之间的通信。
③可看成是一种特殊的文件。

2.2管道如何实现进程间的通信
pipe函数()

(1)父进程创建管道,得到两个⽂件描述符指向管道的两端
(2)父进程fork出子进程,⼦进程也有两个⽂件描述符指向同⼀管道。
(3)父进程关闭fd[0],子进程关闭fd[1],即⽗进程关闭管道读端,⼦进程关闭管道写端(因为管道只支持单向通信)。⽗进程可以往管道⾥写,⼦进程可以从管道⾥读,管道是⽤环形队列实现的,数据从写端流⼊从读端流出,这样就实现了进程间通信。
简单来说父子进程之间好像出现了一个管道连接二者,其中一个往里面写,另一个关闭读,反过来也一样,0是读,1是写
来看个简单的例子:
简单解释一下这个代码,我们创建了pipe函数的参数f

最低0.47元/天 解锁文章
948

被折叠的 条评论
为什么被折叠?



