管道作用:用于進程間通信
分類:普通管道
? ? ? ? 命名管道
普通管道:
普通管道允許兩個進程按生產(chǎn)者消費者方式進行通信
生產(chǎn)者向管道寫入端寫,消費者從讀出端讀
普通管道只允許單向通信其骄,雙向通信要使用兩個管道
采用普通管道的進程通信需要有父子關(guān)系,所以這些管道只能用于同一機器進程間通信
為什么普通管道只能用于親緣進程間通信呢辈末?
? ? ? 由于普通管道文件沒有文件名,所以進程無法使用open函數(shù)打開文件璃赡,從而得到文件描述符导而,所以只有一種辦法。那就是父進程先調(diào)用pipe創(chuàng)建出管道管挟,并得到管道的文件描述符號轿曙。然后fork出子進程,讓子進程繼承父進程打開的文件描述符僻孝,父子進程就能通過同一管道导帝,從而實現(xiàn)通信
命名管道:
命名管道可以雙向通信,當建立一個命名管道后穿铆,多個進程(不是父子進程也可以通信)都可以用它通信您单。不同的系統(tǒng)間通信,需要使用套接字荞雏。