linux進程篇 (三) 進程間的通信1 管道通信
阿新 • • 發佈:2019-04-01
對象 內核空間 如果 class 基於 無名管道 sock expand 信號
通信方式分4大類:
管道通信:無名管道 有名管道
信號通信:發送 接收 和 處理
IPC通信:共享內存 消息隊列 信號燈
socke 網絡通信
用戶空間 進程A <----無法通信----> 進程B -----------------|--------------------------------------|-------------- | | 內核空間 |<-------------> 對象 <--------------->| ---------------------------------------------------------------------- //基於文件IO的思想 //open 打開或者創建一個文件,內核開辟一個buffer -->打開對象 //write 往buffer裏面寫 //read 從buffer讀 //close 釋放buffer
用戶空間 進程A <----無法通信----> 進程B -----------------|--------------------------------------|-------------- | | 內核空間|<-------------> 管道 <--------------->| ---------------------------------------------------------------------- 管道文件時一個特殊的文件,由隊列來實現 open --> pipe 管道中的東西讀完了,就刪除了、 管道中如果沒有東西可讀,就會 讀堵塞 管道中如果寫滿了,就會寫阻塞
。
linux進程篇 (三) 進程間的通信1 管道通信