管道是指进程直接进行交换数据的通道,可分为普通管道(pipe)和命名管道(fifo)。
创建管道的方式:
站在主进程的角度上fd[1]是把数据输出去的所一可以把fd[1]当做是写接口,相应的fd[0]就是读接口。(写代码的时候要注意是<站在谁的角度上>)
普通管道的特点:
1、只能用于相互关联的进程之间的通信(比如父子进程){fifo命名管道可以克服这种问题}
2、所有管道都是半双工性的
也就是说,数据只能想一个方向流动,如果需要进行双方的通信是,则需要建立两个管道:
下面编写一个程序实现父子间对话;
代码:
测试结果: