管道通信是单向的,有固定的读端和写端。
数据被进程从管道读出后,在管道中该数据就不存在了,数据被取走了;
当进程去读取空管道的时候,进程会阻塞,等待其他进程向管道中写入数据或写端关闭。
当进程往满管道写入数据时,进程也会阻塞,等待其他进程读走管道中的数据;
管道容量是有限的,查看系统当前管道缓冲区带线大小的命令是:
创建无名管道可以使用系统调用是:
pipe
fork
vfork
mkfifo
利用如下语句创建无名管道,int fds[2]; pipe(fds);执行完毕之后,fds[0]存放的是__(读/写)端的文件描述符。
创建有名管道使用的函数是____。
写进程向管道写入数据,而管道的读端已经被关闭时,内核会向写进程发送____ 信号。
无名管道只能用于父进程和子进程间的通信,有名管道(FIFO)可用于同一系统中的任意两个进程间的通信。