訊號處理的方法主要有兩種,一種是使用signal()函式,另一種是使用訊號集函式組。
例項
#include #include #include /*自定義的訊號處理函式*/
void my_func(int sign_no)
if(sign_no == sigquit)
}int main()
/*將相應的訊號加入訊號集*/
if(sigaddset(&set,sigint) < 0)
if(sigaddset(&set,sigquit) < 0)
/*sigismember()查詢指定訊號是否在訊號集中*/
if(sigismember(&set,sigint))
if(sigismember(&set,sigquit))
/*設定訊號集遮蔽字,此時set中的訊號不會被傳遞給程序,暫時進入等待處理狀態*/
if(sigprocmask(sig_block,&set,null)<0)
else
/*在訊號遮蔽字中刪除set中的訊號*/
if(sigprocmask(sig_unblock,&set,null) < 0)
else
while(1);
return 0;
}
執行結果
Linux程序間通訊 訊號集函式
分類 初學linux 2013 08 21 02 32 1298人閱讀收藏 舉報linux 程序間通訊 訊號訊號集函式 我們已經知道,我們可以通過訊號來終止程序,也可以通過訊號來在程序間進行通訊,程式也可以通過指定訊號的關聯處理函式來改變訊號的預設處理方式,也可以遮蔽某些訊號,使其不能傳遞給程序。那...
Linux程序間通訊 訊號集函式
我們已經知道,我們可以通過訊號來終止程序,也可以通過訊號來在程序間進行通訊,程式也可以通過指定訊號的關聯處理函式來改變訊號的預設處理方式,也可以遮蔽某些訊號,使其不能傳遞給程序。那麼我們應該如何設定我們需要處理的訊號,我們不需要處理哪些訊號等問題呢?訊號集函式就是幫助我們解決這些問題的。linux程...
Linux程序間通訊 訊號集函式
linux 程序間通訊 訊號訊號集函式 我們已經知道,我們可以通過訊號來終止程序,也可以通過訊號來在程序間進行通訊,程式也可以通過指定訊號的關聯處理函式來改變訊號的預設處理方式,也可以遮蔽某些訊號,使其不能傳遞給程序。那麼我們應該如何設定我們需要處理的訊號,我們不需要處理哪些訊號等問題呢?訊號集函式...