前面介紹了linux中訊號的一些基本情況,這裡總結一下訊號的傳送。
訊號的傳送主要由函式kill()、raise()、sigqueue()、alarm()、settimer()、abort()
來完成。
#include #include int kill( pid_t pid, int sig );
關於第乙個引數,有如下注意:raise()函式是ansi c而非posix標準定義的,可以用來給呼叫
raise()
函式的程序傳送訊號,在shell下輸入man raise
可獲取其函式原型:
#include int raise( int sig );
sigqueue()函式是乙個比較新的傳送訊號函式,它與kill()
函式傳送訊號時的創新在於,sigqueue()
在傳送訊號的同時還支援攜帶引數,但sigqueue()
不能給一組程序傳送訊號,在shell中輸入man sigqueue
可獲取函式原型:
#include int sigqueue( pid_t pid, int sig, const union si**al value );
union si**al
;
alarm()函式可以用來設定定時器,當定時器超時時,會傳送sigalrm訊號給呼叫alarm()
函式的程序,在shell下輸入man alarm
可獲取函式原型:
#include unsigned int alarm( unsigned int seconds );
對學習linux中訊號的傳送,掌握這幾種訊號傳送方法就足夠了。 Linux C程式設計之訊號介紹
unix訊號使用總結 訊號的原理 訊號是一種程序通訊的方法,他應用於非同步事件的處理。訊號的實現是一種軟中斷。它被傳送為乙個正在執行的程序,已告知程序某個事件發生了。1.1 訊號的建立 用訊號處理來模擬作業系統的中斷功能。要想使用訊號處理功能,你要做的就是填寫乙個訊號處理函式即可。1 呼叫signa...
Linux C程式設計之訊號介紹
unix訊號使用總結 訊號的原理 訊號是一種程序通訊的方法,他應用於非同步事件的處理。訊號的實現是一種軟中斷。它被傳送為乙個正在執行的程序,已告知程序某個事件發生了。1.1 訊號的建立 用訊號處理來模擬作業系統的中斷功能。要想使用訊號處理功能,你要做的就是填寫乙個訊號處理函式即可。1 呼叫signa...
linux c 程序間訊號的傳送與接收
訊號不僅可以用於事件的非同步處理,同時也可以用作資料傳輸,一者用於接收資料的程序需要安裝訊號處理函式,專門用於接收訊號,二者用於給指定的程序傳送訊號 傳送訊號的程序是 main.cpp created on jul 15,2014 author john include include includ...