函數函數sigaction、signal
阿新 • • 發佈:2019-01-14
動作 信號處理函數 const 屏蔽 元素 賦值 num clas 集合
函數函數sigaction
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
分析:
- act:傳入參數,新的處理方式
- oldact:傳出參數,舊的處理方式
1 struct sigaction 2 { 3 void(*sa_handler)(int); 4 void(*sa_sigaction)(int, siginfo_t *, void *); 5 sigset_t sa_mask; 6 int sa_flags;7 void(*sa_restorer)(void); 8 };
分析:
- sa_restorer:該元素是過時的,不應該使用, POSIX.1標準將不指定該元素。(棄用)
- sa_sigaction:當sa_flags被指定為SA_SIGINFO標誌時,使用該信號處理程序(很少使用)
重點掌握:
- sa_handler:指定信號捕捉後的處理函數名(即註冊函數)。可賦值為SIG_IGN表忽略或SIG_DFL表執行默認動作
- sa_mask:調用信號處理函數時,所要屏蔽的信號集合(信號屏蔽字)。註意僅在處理函數調用期間屏蔽。(默認屬性:信號捕捉函數執行期間,自動屏蔽本信號)
- sa_flag:通常設置為0,表默認屬性
函數函數sigaction、signal