linux管道原理与应用

来源:互联网 发布:绿色版软件加入注册表 编辑:程序博客网 时间:2024/06/05 22:31

管道实际上在内核创建了一个i node,和一个指向它的固定大小内核缓冲区(可以理解为类似cache,但读写不分开),传入的两个文件描述符就都指向这段缓冲区,这样读管道的0文件描述符和写它的1文件描述符,就好像读写这个文件一样,实现了进程间的通信。


管道虽然说是半双工,不同时刻可以在两个方向流动,假设是这样的场景,一个进程创建了一个管道,然后创建子进程,父进程先写后读,子进程先读后写,我们希望他实现的是父进程先发数据给子进程,子进程然后发数据给父进程,但是很有可能子进程还没读,父进程就先读了(试验证实)


所以,真的想实现双向通信,可以创建两个管道,一个正向,一个逆向。

0 0
原创粉丝点击