ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# C 标准库 - <signal.h> ## 简介 **signal.h** 头文件定义了一个变量类型 **sig_atomic_t**、两个函数调用和一些宏来处理程序执行期间报告的不同信号。 ## 库变量 下面是头文件 signal.h 中定义的变量类型: | 变量 | 描述 | | --- | --- | | **sig_atomic_t** | 这是 **int** 类型,在信号处理程序中作为变量使用。它是一个对象的整数类型,该对象可以作为一个原子实体访问,即使存在异步信号时,该对象可以作为一个原子实体访问。 | ## 库宏 下面是头文件 signal.h 中定义的宏,这些宏将在下列两个函数中使用。**SIG_** 宏与 signal 函数一起使用来定义信号的功能。 | 宏 | 描述 | | --- | --- | | **SIG_DFL** | 默认的信号处理程序。 | | **SIG_ERR** | 表示一个信号错误。 | | **SIG_IGN** | 忽视信号。 | **SIG** 宏用于表示以下各种条件的信号号码: | 宏 | 描述 | | --- | --- | | **SIGABRT** | 程序异常终止。 | | **SIGFPE** | 算术运算出错,如除数为 0 或溢出。 | | **SIGILL** | 非法函数映象,如非法指令。 | | **SIGINT** | 中断信号,如 ctrl-C。 | | **SIGSEGV** | 非法访问存储器,如访问不存在的内存单元。 | | **SIGTERM** | 发送给本程序的终止请求信号。 | ## 库函数 下面是头文件 signal.h 中定义的函数: | 函数 | 描述 | | --- | --- | | [void (\*signal(int sig, void (\*func)(int)))(int)](c-function-signal.html) | 这个函数设置一个函数来处理信号,即信号处理程序。 | | [int raise(int sig)](c-function-raise.html) | 这个函数会促使生成信号 **sig**。sig 参数与 SIG 宏兼容。 |