信号的产生方式四种:;
1,通过终端摁键产生的信号
2,调用系统函数产生的信号 ;例如signal() abort() kill()
3,由软件链接产生的信号 alarm
4 硬件异常产生的信号 CPU
信号的保存
通过位图的方式
信号的处理:::
实际执行信号的处理的动作称为信号递达
信号从产生到递达之间的状态成为信号未决
进程可以选择阻塞某个信号
被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作
注意 递达和忽略是不同的 只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作。
信号集的操作函数
#include <signal.h>
int sigemptyset(sigset_t *set);
int sigfillset(sigset_t *set);
int sigaddset (sigset_t *set, int signo);
int sigdelset(sigset_t *set, int signo);
int sigismember(const sigset_t *set, int signo);
sigprocmask
sigpending
下面通过一个函数代码段来具体的分析每个函数