Linux程序間通訊

2021-08-18 02:16:43 字數 1385 閱讀 9229

程序間通訊目的:

常見的幾種通訊方式

管道: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.管道與...