linux下sigaction函數解析功能作用

原文鏈接:linux中sigaction函數詳解

一、函數原型:sigaction函數的功能是檢查或修改與指定信號相關聯的處理動作(可同時兩種操作)

int sigaction(int signum, const struct sigaction *act,
                     struct sigaction *oldact);

signum參數指出要捕獲的信號類型,act參數指定新的信號處理方式,oldact參數輸出先前信號的處理方式(如果不爲NULL的話)。

二、 struct sigaction結構體介紹
struct sigaction {
    void (*sa_handler)(int);
    void (*sa_sigaction)(int, siginfo_t *, void *);
    sigset_t sa_mask;
    int sa_flags;
    void (*sa_restorer)(void);
}

sa_handler此參數和signal()的參數handler相同,代表新的信號處理函數

sa_mask 用來設置在處理該信號時暫時將
sa_mask 指定的信號集擱置

sa_flags 用來設置信號處理的其他相關操作,下列的數值可用。
SA_RESETHAND:當調用信號處理函數時,將信號的處理函數重置爲缺省值SIG_DFL
SA_RESTART:如果信號中斷了進程的某個系統調用,則系統自動啓動該系統調用
SA_NODEFER :一般情況下, 當信號處理函數運行時,內核將阻塞該給定信號。但是如果設置了 SA_NODEFER標記, 那麼在該信號處理函數運行時,內核將不會阻塞該信號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章