管道作用:用于进程间通信
分类:普通管道
命名管道
普通管道:
普通管道允许两个进程按生产者消费者方式进行通信
生产者向管道写入端写,消费者从读出端读
普通管道只允许单向通信,双向通信要使用两个管道
采用普通管道的进程通信需要有父子关系,所以这些管道只能用于同一机器进程间通信
为什么普通管道只能用于亲缘进程间通信呢?
由于普通管道文件没有文件名,所以进程无法使用open函数打开文件,从而得到文件描述符,所以只有一种办法。那就是父进程先调用pipe创建出管道,并得到管道的文件描述符号。然后fork出子进程,让子进程继承父进程打开的文件描述符,父子进程就能通过同一管道,从而实现通信
命名管道:
命名管道可以双向通信,当建立一个命名管道后,多个进程(不是父子进程也可以通信)都可以用它通信。不同的系统间通信,需要使用套接字。
网友评论