signal()
函数是C语言中用于设置信号处理函数的函数。它允许程序在接收到特定信号时执行自定义的处理操作,而不是使用默认的信号处理方式。
下面是一个简单的示例代码,演示了如何使用signal()
函数来设置SIGINT信号的处理函数:
【Ctrl+C组合键时,会产生一个SIGINT信号】
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
void signalHandler(int signum) {
printf("Received SIGINT signal\n");
exit(0); // 退出程序
}
int main() {
// 设置SIGINT信号的处理函数为signalHandler
if (signal(SIGINT, signalHandler) == SIG_ERR) {
perror("Failed to set signal handler");
exit(1);
}
printf("Program is running...\n");
// 无限循环,等待信号的到来
while (1) {
// 这里可以添加其他逻辑或任务
}
return 0;
}
当程序接收到SIGINT信号时,该函数会被调用,并打印一条消息"Received SIGINT signal",然后退出程序。
在main()
函数中,我们使用signal()
函数将SIGINT信号的处理函数设置为signalHandler
。如果设置成功,程序将继续运行;否则,会打印错误信息并退出程序。