网站首页布局风格,仿古建筑工程网,安阳区号电话,电子商务网站设计要求管道是一种最基本的IPC机制#xff0c;作用于有血缘关系的进程之间#xff0c;完成数据传递。调用pipe系统函数即可创建一个管道。管道有如下特质#xff1a;1.其本质是一个伪文件#xff08;实为内核缓冲区#xff09;#xff0c;伪文件即不是真正的文件#xff0c;不占…管道是一种最基本的IPC机制作用于有血缘关系的进程之间完成数据传递。调用pipe系统函数即可创建一个管道。管道有如下特质1.其本质是一个伪文件实为内核缓冲区伪文件即不是真正的文件不占用磁盘空间其文件描述符为p。另外s套接字文件、b、c均为伪文件2.由两个文件描述符引用一个表示读端一个表示写端。管道的两端各是一个进程总共两个进程也可以是一个进程但是没有意义3.规定数据从管道的写端流入管道从读端流出。4.管道没有名字所以为匿名管道。
管道的原理管道实为内核使用环形队列先进先出机制借助内核缓冲区一个页面大小即4K实现。
管道的局限性1.一般数据自己读不能自己写也可以但是不会用没有意义2. 数据一旦被读走便不在管道中存在不可反复读取3.管道采用半双工通信方式。因此数据只能在一个方向上流动但是方向可以改变全双工在同时可以实现双向通信需要双方通信需要提前建立好两个管道在子进程创建之前4.只能在有公共祖先的进程即有血缘关系的进程间使用管道5.管道所传送的是无格式字节流这就要求管道的读出方和写入方必须事先约定好数据的格式比如多少字节做一个消息或命令、记录等。
常见的通信方式有单工通信、半双工通信、全双工通信。 单工通信的方向不能改变且只能沿一个方向通信。
一个进程使用管道的情况。管道从一端fd[1]写入数据然后从另一端fd[0]读出数据。完事后关闭文件描述符closefd[0]closefd[1] 这样操作是没有任何意义的因此不用。