2019-05-31  196 views 评论

day7练习1:使用管道实现父子进程间通信,完成:ls | wc –l。

 标签:  

day7练习1

题目说明

使用管道实现父子进程间通信,完成:ls | wc –l。假定父进程实现ls,子进程实现wc

题目解析

题目还是为了巩固我们对于pipe()以及fork()的使用,以及如何使用dup2()函数。
这里面我就重点说一下pipe()dup2()函数吧。
其实正如学习笔记里面的那个例子,我们首先要新建一个int型的有两个元素的数组,这个数组作为pipe()的传出参数,担任着记录输入和输出的地址的重任。由于我们要求父进程担任传出端,子进程担任传入端,所以一定要记得分别关闭fd[0]和fd[1](前者是读入,后者是写出)。

然后就是由于我们不再是在标准输入输出进行输入输出数据,所以要使用dup2对文件描述符的0和1进行重定向即可。

代码实现

给我留言

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: