有名管道的创建 什么是无名管道?
浏览量:2953
时间:2021-03-18 06:49:54
作者:admin
什么是无名管道?
匿名管道:管道是半双工的,数据只能单向流动;当双方需要通信时,需要建立两条管道;只能在父子进程或兄弟进程(有亲属关系的进程)之间使用。
单独的文件系统:管道是管道两端进程的文件,但不是普通文件。它不属于文件系统,而是一个自我支持的门户,它形成一个单独的文件系统,只存在于内存中。
将数据读写到管道的另一端。写入的内容每次都添加到管道缓冲区的末尾,数据每次都从缓冲区的头部读取。(有点像lieha)
#include<unistd。H>
int pipe(int FD[2])
此函数创建的管道的两端位于进程的中间,在实际应用中意义不大。因此,一个进程是由After pipe()创建一个管道后创建的,它通常会分叉一个子进程,然后通过管道实现父进程和子进程之间的通信(因此不难推断,只要两个进程之间有血缘关系,这里的血缘关系是指有一个共同的祖先,它们可以通过管道进行通信)。
在将数据写入管道时,Linux不能保证写入的原子性。一旦管道缓冲区中有空闲区域,写入过程就会尝试将数据写入管道。如果读取进程没有读取管道缓冲区中的数据,则写入操作将始终阻塞。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。