1. 程式人生 > >linux進程篇 (三) 進程間的通信1 管道通信

linux進程篇 (三) 進程間的通信1 管道通信

對象 內核空間 如果 class 基於 無名管道 sock expand 信號

通信方式分4大類:


管道通信:無名管道 有名管道
信號通信:發送 接收 和 處理
IPC通信:共享內存 消息隊列 信號燈
socke 網絡通信

用戶空間      進程A     <----無法通信---->      進程B
-----------------|--------------------------------------|--------------
                 |                                |
內核空間          |<------------->  對象 <--------------->|    

----------------------------------------------------------------------

//
基於文件IO的思想 //open 打開或者創建一個文件,內核開辟一個buffer -->打開對象 //write 往buffer裏面寫 //read 從buffer讀 //close 釋放buffer

1. 進程間的管道通信

用戶空間       進程A       <----無法通信---->       進程B
-----------------|--------------------------------------|--------------
              |                               |
內核空間        
|<-------------> 管道 <--------------->| ---------------------------------------------------------------------- 管道文件時一個特殊的文件,由隊列來實現 open --> pipe 管道中的東西讀完了,就刪除了、 管道中如果沒有東西可讀,就會 讀堵塞 管道中如果寫滿了,就會寫阻塞

linux進程篇 (三) 進程間的通信1 管道通信