LInux程序間通訊

2021-10-07 05:34:05 字數 972 閱讀 9059

實現原理:管道實現為核心使用環形佇列機制,借助核心緩衝區(大小是 4k)實現。

管道的侷限性:

返回值:

寫管道行為:

返回值:

訊號資訊的載體,linux/unix 環境下,古老、經典通訊手段。

遞達

未決

訊號處理方式

5.4.1 訊號四要素

5.4.2 常規訊號

5.4.3 訊號機操作函式

5.4.4 設定和解除訊號遮蔽字

set: 自定義 set

oldset: 舊的 mask

5.4.5 檢視未決訊號集

5.4.6 函式捕捉

signal 和 sigaction 的作用就是註冊乙個捕捉函式

signal 函式

sigaction 函式

struct sigaction ;
函式捕捉特性

程序正常執行時,預設pcb中有乙個訊號遮蔽字 mask,它決定了程序自動遮蔽哪些訊號。當註冊了某個訊號捕捉函式,捕捉到該訊號以後,要呼叫該函式。而該函式有可能執行很長時間,在這期間所有的遮蔽訊號不由 mask 決定。而是 sa_mask 來制定。呼叫完處理函式,再恢復為 mask。

*** 訊號捕捉函式執行期間,*** 訊號自動被遮蔽。

阻塞的常規訊號不支援排隊,產生多次只記錄一次。(後 32 個實時訊號支援排隊)

5.4.7 訊號例子

#include #include #include void sys_err(const char *str) 

void catch_child(int signo)

}return;

}int main(int argc, char * ar**)

}if (15 == i) else

return 0;

}

Linux程序間通訊

程序間通訊 ipc interprocess communication 基本機制 訊號 管道及命名管道 訊息佇列 共享主存 訊號量 套接字。訊號 全稱軟中斷訊號,是在軟體層次上對中斷機制的一種模擬,它也是程序間通訊機制中唯一的非同步通訊機制。linux訊號處理函式可分為訊號安裝函式 訊號傳送函式和...

Linux程序間通訊

謝謝nonoob糾錯 我們在linux訊號基礎中已經說明,訊號可以看作一種粗糙的程序間通訊 ipc,interprocess communication 的方式,用以向程序封閉的記憶體空間傳遞資訊。為了讓程序間傳遞更多的資訊量,我們需要其他的程序間通訊方式。這些程序間通訊方式可以分為兩種 1.管道與...

Linux程序間通訊

謝謝nonoob糾錯 我們在linux訊號基礎中已經說明,訊號可以看作一種粗糙的程序間通訊 ipc,interprocess communication 的方式,用以向程序封閉的記憶體空間傳遞資訊。為了讓程序間傳遞更多的資訊量,我們需要其他的程序間通訊方式。這些程序間通訊方式可以分為兩種 1.管道與...