本系列只是为了研究C语言的头文件,如果signal.h
展开讲感觉就有点跑题了,网上有许多对信号机制的解析,写的都非常好,大家可以搜一些,这里就只对signal
进行记录,以便后续继续学习。
- 信号
在命令行界面输入kill -l
就可以看到所以的信号以及对应的编号
列表中,编号为1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。
细心的人可能会发现,上图的编号没有32和33,不知道是不是系统保留的信号,不过我在signum.h
里面找到了这两个定义
#define SIGLOST 32 /* Resource lost (Sun); server died (GNU). */
#define _NSIG 33 /* Biggest signal number + 1. */
知道的大神,希望能在下方留言指点
- signal函数
系统使用signal
函数来注册信号处理函数,声明如下
void (*signal(int signum, void (*handler)(int)))(