實現原理:管道實現為核心使用環形佇列機制,借助核心緩衝區(大小是 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.管道與...