函数函数sigaction、signal

函数函数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,表默认属性

猜你喜欢

转载自www.cnblogs.com/sunbines/p/10265659.html