signal.h
提供了包括中断和运行时错误在内的异常情况处理函数。
signal.h 头文件定义了一个变量类型 sig_atomic_t、两个函数调用和一些宏来处理程序执行期间报告的不同信号。
signal库定义的变量
下面是头文件 signal.h 中定义的变量类型:sig_atomic_t
- 这是 int 类型,在信号处理程序中作为变量使用。它是一个对象的整数类型,该对象可以作为一个原子实体访问,即使存在异步信号时,该对象可以作为一个原子实体访问。
signal库定义的宏
下面是头文件 signal.h 中定义的宏,这些宏将在下列两个函数中使用。SIG_ 宏与 signal 函数一起使用来定义信号的功能。
序号 | 宏 | 宏说明 |
---|---|---|
1 | SIG_DFL | 默认的信号处理程序。 |
2 | SIG_ERR | 表示一个信号错误。 |
3 | SIG_IGN | 忽视信号。 |
SIG 宏用于表示以下各种条件的信号码:
序号 | 宏 | 宏说明 |
---|---|---|
1 | SIGABRT | 程序异常终止。 |
2 | SIGFPE | 算术运算出错,如除数为 0 或溢出。 |
3 | SIGILL | 非法函数映象,如非法指令。 |
4 | SIGINT | 中断信号,如 ctrl-C。 |
5 | SIGSEGV | 非法访问存储器,如访问不存在的内存单元。 |
6 | SIGTERM | 发送给本程序的终止请求信号。 |
signal库定义的函数
下面是头文件 signal.h 中定义的函数:
序号 | 函数 | 函数说明 |
---|---|---|
1 | void (*signal(int sig, void (*func)(int)))(int) |
该函数设置一个函数来处理信号,即信号处理程序。 |
2 | int raise(int sig) | 该函数会促使生成信号 sig。sig 参数与 SIG 宏兼容。 |