SIGABRT SIGFPE SIGILL SIGINT SIGSEGV SIGTERM宏
概要:
#define | SIGABRT | value //value值由具体实现定义。 |
#define | SIGFPE | value //value值由具体实现定义。 |
#define | SIGILL | value //value值由具体实现定义。 |
#define | SIGINT | value //value值由具体实现定义。 |
#define | SIGSEGV | value //value值由具体实现定义。 |
#define | SIGTERM | value //value值由具体实现定义。 |
描述:
这些宏会扩展为int类型的不同正值的常量表达式,宏值也是信号编号,每个宏对应的指定条件如下表所示:
宏 | 对应术语 | 描述 |
SIGABRT | abort | 异常终止,例如:调用abort函数引发的异常终止。 |
SIGFPE | floating-point exception | 错误的算术运算,例如:除以0或者导致溢出的运算。 |
SIGILL | illegal instruction | 检测到无效函数映像,例如:无效指令。 |
SIGINT | interrupt | 收到交互式注意信号。 |
SIGSEGV | segmentation violation | 对存储的无效访问。 |
SIGTERM | termination | 发送给程序的终止请求。 |
实现不需要生成上述信号,除非显式调用raise函数。
上述宏是ISO/IEC 9899:2018标准中定义的信号宏,具体实现还可能定义以SIG和一个大写字母或者SIG_和一个大写字母开头的信号宏。完整的信号集、其语义以及默认的处理方式由实现定义;所有信号编号都应为正值。
范例:
|
|
输出:
SIGABRT: 22
SIGFPE : 8
SIGILL : 4
SIGINT : 2
SIGSEGV: 11
SIGTERM: 15
GCC编译器<signal.h>头文件中,不同信号的信号值定义如下:
#define SIGINT 2
#define SIGILL 4
#define SIGFPE 8
#define SIGSEGV 11
#define SIGTERM 15
#define SIGBREAK 21
#define SIGABRT 22