以下是 <signal.h> 中一些常见的函数和宏:
信号处理函数
1. signal 函数
#include <signal.h>
void (*signal(int signum, void (*handler)(int)))(int);
该函数用于设置信号处理函数。signum 参数指定信号的类型,handler 参数指定了相应信号的处理函数。返回之前注册的信号处理函数。
预定义的信号常量
1. SIGINT, SIGTERM, SIGSEGV 等
这些常量表示不同的信号类型,如中断、终止、段错误等。详细的信号类型可以查看系统的 <signal.h> 头文件。
示例
以下是一个简单的示例,演示了如何使用 <signal.h> 中的函数处理 SIGINT 信号(在用户按下 Ctrl+C 时发送):
#include <stdio.h>
#include <signal.h>
// 信号处理函数
void sigint_handler(int signum) {
printf("Received SIGINT signal. Exiting...\n");
// 这里可以进行一些清理工作
exit(0);
}
int main() {
// 注册信号处理函数
signal(SIGINT, sigint_handler);
printf("Press Ctrl+C to trigger SIGINT signal.\n");
// 进入无限循环
while (1) {
// 空循环,等待信号
}
return 0;
}
在这个示例中,signal 函数用于注册 SIGINT 信号的处理函数 sigint_handler。当用户按下 Ctrl+C 时,程序将收到 SIGINT 信号,并执行注册的处理函数,输出一条信息并退出程序。这是一种在程序运行时处理异步事件的方式。
转载请注明出处:http://www.zyzy.cn/article/detail/13553/C 语言