簡單處理程式:
函式介紹:
alarm(設定訊號傳送鬧鐘)
相關函式
signal,sleep
表頭檔案
#include
定義函式
unsigned int alarm(unsigned int seconds);
函式說明
alarm()用來設定訊號sigalrm在經過引數seconds指定的秒數後傳送給目前的程序。如果引數seconds 為0,則之前設定的鬧鐘會被取消,並將剩下的時間返回。
返回值
返回之前鬧鐘的剩餘秒數,如果之前未設鬧鐘則返回0。
signal(設定訊號處理方式)
相關函式
sigaction,kill,raise
表頭檔案
#include
定義函式
void (*signal(int signum,void(* handler)(int)))(int);
函式說明
signal()會依引數signum 指定的訊號編號來設定該訊號的處理函式。當指定的訊號到達時就會跳轉到引數handler指定的函式執行。如果引數handler不是函式指標,則必須是下列兩個常數之一:
sig_ign 忽略引數signum指定的訊號。
sig_dfl 將引數signum 指定的訊號重設為核心預設的訊號處理方式。
關於訊號的編號和說明,請參考附錄d
返回值
返回先前的訊號處理函式指標,如果有錯誤則返回sig_err(-1)。
附加說明
在訊號發生跳轉到自定的handler處理函式執行後,系統會自動將此處理函式換回原來系統預設的處理方式,如果要改變此操作請改用sigaction()。
範例
參考alarm()或raise()。
Linux中的訊號處理
突然想起使用sigaction註冊訊號處理函式時,訊號處理函式型別有二個 struct sigaction 通過對上面的sa flags賦值為sa siginfo,讓系統使用多引數的訊號處理函式。在處理函式中,由於傳進來乙個siginfo t的引數,我們可以通過它獲取到哪個程序傳進來的訊息。今天試了...
Linux的訊號處理
linux為實現訊號處理提供了比較多的介面,看似紛雜,但理清訊號的關係後還是很有條理的。主要分為以下四組,怎麼傳送乙個訊號,收到乙個訊號後做什麼樣的處理,主動等待乙個訊號的發生,對特定訊號只記錄是否發生供以後再處理 四組的api如下 不考慮多執行緒 傳送訊號 kill,alarm,arise 安裝訊...
Linux 訊號處理
用sigcation函式 在標頭檔案signal.h中 來設定自己的訊號處理函式,用法參見 各種訊號參見 寫了個sigint,也就是c c鍵的處理例子 include includestruct sigaction newsigint,oldsigint void signalinthandler ...