管道

2019-05-28  本文已影响0人  skelton

管道作用:用于进程间通信

分类:普通管道

        命名管道


普通管道:

普通管道允许两个进程按生产者消费者方式进行通信

生产者向管道写入端写,消费者从读出端读

普通管道只允许单向通信,双向通信要使用两个管道

采用普通管道的进程通信需要有父子关系,所以这些管道只能用于同一机器进程间通信

为什么普通管道只能用于亲缘进程间通信呢?

      由于普通管道文件没有文件名,所以进程无法使用open函数打开文件,从而得到文件描述符,所以只有一种办法。那就是父进程先调用pipe创建出管道,并得到管道的文件描述符号。然后fork出子进程,让子进程继承父进程打开的文件描述符,父子进程就能通过同一管道,从而实现通信


命名管道:

命名管道可以双向通信,当建立一个命名管道后,多个进程(不是父子进程也可以通信)都可以用它通信。不同的系统间通信,需要使用套接字。

上一篇 下一篇

猜你喜欢

热点阅读