linux管道原理与应用
2013-12-12 15:29
267 查看
管道实际上在内核创建了一个i node,和一个指向它的固定大小内核缓冲区(可以理解为类似cache,但读写不分开),传入的两个文件描述符就都指向这段缓冲区,这样读管道的0文件描述符和写它的1文件描述符,就好像读写这个文件一样,实现了进程间的通信。
管道虽然说是半双工,不同时刻可以在两个方向流动,假设是这样的场景,一个进程创建了一个管道,然后创建子进程,父进程先写后读,子进程先读后写,我们希望他实现的是父进程先发数据给子进程,子进程然后发数据给父进程,但是很有可能子进程还没读,父进程就先读了(试验证实)
所以,真的想实现双向通信,可以创建两个管道,一个正向,一个逆向。
管道虽然说是半双工,不同时刻可以在两个方向流动,假设是这样的场景,一个进程创建了一个管道,然后创建子进程,父进程先写后读,子进程先读后写,我们希望他实现的是父进程先发数据给子进程,子进程然后发数据给父进程,但是很有可能子进程还没读,父进程就先读了(试验证实)
所以,真的想实现双向通信,可以创建两个管道,一个正向,一个逆向。
相关文章推荐
- Linux管道PIPE的原理和应用
- linux目录介绍、归档、压缩、管道符的功能与应用
- Linux系统中profile文件原理与应用
- Linux 管道(pipe)原理及使用
- Linux系统中profile文件原理与应用
- 浅析 Linux 中的时间编程和实现原理,第 1 部分: Linux 应用层的时间编程
- Linux安全管理-Iptables原理及其应用
- linux 管道的环形buffer(缓冲区) 实现原理
- linux源概念、原理、应用(linux软件安装、升级)
- Linux操作系统原理与应用(第一章)细节指南
- JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用
- 浅析 Linux 中的时间编程和实现原理,第 1 部分: Linux 应用层的时间编程
- 浅析 Linux 中的时间编程和实现原理一—— Linux 应用层的时间编程
- Linux中的SELinux原理与应用
- JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用
- Linux消息队列原理与应用
- JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用
- Linux下FTP服务器原理简介及简单应用
- Linux内核同步机制的自旋锁原理及综合应用实例
- linux管道通信原理