引言
sigaction 函数的功能是检查或修改(检查并修改)与指定信号相关的处理动作。此函数取代了早期 Unix 的 signal 函数。
1.0 函数声明
#include <sys/signal.h>
int sigaction( int signo,
const struct sigaction *restrict act,
struct sigaction *restrict oact
)
1.1 参数
-
signo
要检测或者要修改其具体动作的信号编号。 -
act
当该参数不为 NULL 时,指定要修改的新的动作。 -
oact
当该参数不为 NULL 时,将该信号的上一个动作(更新前的动作)保存在该对象中。
1.2 sigaction 结构体
sigaction 函数的后两个参数都用到了该结构体。
#include <sys/signal.h>
struct sigaction
{
void (*sa_handler)(int); /* 信号处理函数地址 */
sigset_t sa_mask; /* 信号掩码集,当调用信号处理函数时,程序将阻塞 sa_mask 中的信号 */
int sa_flag; /* 位掩码,指定用于控制信号处理过程中的各种选项 */
void (*sa_sigaction)(int,siginfo_t*,void*); /* 暂不用 */
}
1.3 返回值
-
0
函数执行成功 -
-1
函数执行失败
网友评论