語言 管道 建立匿名管道

2021-10-14 13:53:48 字數 1324 閱讀 2612

本質:

特點:

實現方式:

侷限性:

匿名管道:

僅適用於有血緣關係的程序通訊.

//本功能實現的是 ps axu |grep bash

//通過呼叫 ps 和 grep命令 ,然後分別將他們的輸出 和 輸入的檔案描述符改變. 從終端改入到管道中.

intmain

(int argc,

char

*ar**)

pid_t pid =

fork()

;if(pid ==-1

)//父程序 ps aux 子程序執行 後半段 grep "bash"

pipe建立匿名管道

pipe建立的管道為匿名管道,匿名管道只能在有關係的程序之間使用,例如父程序和子程序,由同乙個父程序建立的子程序或稱為兄弟程序 如圖所示若管道只有乙個,並且管道只能程序單向通訊,因此,在子程序繼承父程序的檔案描述符之後,父程序關閉fd 0 檔案描述符,子程序關閉fd 1檔案描述符,這樣父程序和子程序...

命名管道 匿名管道

有名字 則可以通過 名字 開啟相同的管道進行通訊,沒有名字 在核心中沒有明確標識 只能通過 子程序複製父程序的方式實現通訊,複製了檔案描述符 匿名管道只能用於具有親緣關係的程序間通訊。只要在建立程序之前建立管道,後邊的程序都可以實現通訊。命名管道可用於同一主機任意程序間通訊 作業系統在核心提供的一塊...

命名管道和匿名管道

我們知道程序間是可以通訊的。可以達到資料傳輸 資源共享 事件通知 程序控制等目的。程序間通訊主要包括管道 系統ipc,套接字等。管道分為三種 1 普通管道 int pipe int fds 2 返回值0表示成功,1表示失敗 fd 0 讀 fd 1 寫 子程序往管道中寫資料,寫資料時要關閉讀端 父程序...