coming
天行健 君子以自强不息
记录我的成长
signal系统调用
使用signal函数为一个信号设置处理函数。
1 2 3 4 5 6 7
|
_sighandler_t signal(int sig, _sighandler_t _handler);
|
sigaction系统调用
设置信号处理函数的更健壮的接口是sigaction系统调用。
1 2 3 4 5 6 7
|
int sigaction(int sig, const struct sigaction * act, struct sigaction * oact);
|
sigaction结构体描述信号处理的细节,其定义如下。
1 2 3 4 5 6 7 8 9
| struct sigaction{ union{ __sighandler_t sa_handler; void (*sa_sigaction) (int, siginfo_t *, void *); }__sigaction_handler; __sigset_t sa_mask; int sa_flags; void (*sa_restorer) (void); };
|
- sa_handler。指定信号处理函数;
- sa_mask。信号集类型参数(详见下一节);设置进程的信号掩码(在进程原有信号掩码的基础上增加),以指定哪些信号不能发送给本进程;
- sa_flags。设置程序收到信号时的行为;可选值如下表所示。
本文代表个人观点,内容仅供参考。若有不恰当之处,望不吝赐教!