主要在sigaction信號安裝sigqueue信號發(fā)送時(shí)會用到。
struct sigaction {
? ? void? ? (*sa_handler)(int);? ? /* addr of signal handler, or SIG_IGN, or SIG_DFL */
? ? sigset_t? ? sa_mask;? ? ? ? ? /* additional signals to block */
? ? int? ? sa_flags;? ? ? ? ? ? ? /* signal options */
? ? /* alternate handler */
? ? void? ? (*sa_sigaction)(int, siginfo_t *, void *);
};
當(dāng)更改信號動作時(shí)肛响,如果sa_handler字段包含一個(gè)信號捕捉函數(shù)的地址(與常量SIG_IGN或SIG_DFL相對)岭粤,則sa_mask字段說明了一個(gè)信號集,在調(diào)用該信號捕捉函數(shù)之前特笋,這一信號集要加到進(jìn)程的信號屏蔽字中剃浇。僅當(dāng)從信號捕捉函數(shù)返回時(shí)再將進(jìn)程的信號屏蔽字復(fù)位為原先值巾兆。