目录
信号抵达和信号未决
信号递达:指信号被内核发送到进程并且被该进程接收的过程
信号未决:指信号已经被发送到进程,但由于种种原因暂时没有被处理
注意事项:
1、进程会对于已经递达的信号进行处理,处理方式分为:默认、忽略、捕捉
- 默认:一些信号有系统默认的处理方式,比如进程终止、核心转储等
- 忽略:进程可以忽略某些信号,例如
SIG_IGN
,来避免中断 - 捕捉:通过定义一个信号处理函数,进程可以在信号递达时执行自定义操作
2、未决信号存储在进程的未决信号队列中,等到进程允许处理信号时再进行处理
3、进程可以阻塞某个信号,被阻塞的信号一旦产生永不递达,一直未决,直到主动解除阻塞
4、进程识别信号的方式 = 两张位图 + 一张函数指针数组
信号集操作函数
#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);
信号捕捉
32、00:30向后都是,精力有限以后再补充
32和33如果有时间可以重新观看
~over~