程序間通訊目的:
常見的幾種通訊方式
管道:linux程序間通訊的幾種主要手段,管道可用於具有親緣關係程序間的通訊,有名管道克服了管道沒有名字的限制,因此, 有名管道允許無親緣關係程序間的通訊
匿名管道呼叫函式:
int pipe(int fd[2]);
fd:檔案描述符陣列,f[0]表示讀端,f[1]表示寫端
因為匿名管道只能用於具有親緣關係程序間的通訊,所有我們建立一對父子程序來看它的作用
我們建立了乙個管道,在子程序中將讀端關閉,向管道內寫入內容,在父程序中將寫端關閉,從管道中讀出內容,這樣我們就將兩個程序聯絡了起來,且各自不影響對方的行為,由結果也能看出,兩個程序的確互不干擾完成了自己的任務。
命名管道建立
命名管道可以從命令列上建立,為如下指令:
$ mkfifo filename
int mkfifo(const char* filename,mode_t mode);
我們可以建立乙個命名管道用於兩個程序間通訊體會一下它的作用
執行**後,啟用兩個終端,乙個終端輸入內容可以在另外乙個顯示出來,證明管道的確構建成功了。
Linux程序間通訊
程序間通訊 ipc interprocess communication 基本機制 訊號 管道及命名管道 訊息佇列 共享主存 訊號量 套接字。訊號 全稱軟中斷訊號,是在軟體層次上對中斷機制的一種模擬,它也是程序間通訊機制中唯一的非同步通訊機制。linux訊號處理函式可分為訊號安裝函式 訊號傳送函式和...
Linux程序間通訊
謝謝nonoob糾錯 我們在linux訊號基礎中已經說明,訊號可以看作一種粗糙的程序間通訊 ipc,interprocess communication 的方式,用以向程序封閉的記憶體空間傳遞資訊。為了讓程序間傳遞更多的資訊量,我們需要其他的程序間通訊方式。這些程序間通訊方式可以分為兩種 1.管道與...
Linux程序間通訊
謝謝nonoob糾錯 我們在linux訊號基礎中已經說明,訊號可以看作一種粗糙的程序間通訊 ipc,interprocess communication 的方式,用以向程序封閉的記憶體空間傳遞資訊。為了讓程序間傳遞更多的資訊量,我們需要其他的程序間通訊方式。這些程序間通訊方式可以分為兩種 1.管道與...