在Unix或类Unix系统中,可以使用C语言中的signal函数来捕获程序的信号。下面是一个简单的示例代码:
#include
#include
#include
// 信号处理函数
void signal_handler(int signal_num) {
printf("Received signal: %d\n", signal_num);
// 在这里可以添加信号处理逻辑
}
int main() {
// 注册信号处理函数
signal(SIGINT, signal_handler); // 捕获Ctrl+C信号
while (1) {
// 无限循环,等待信号的到来
}
return 0;
}
在上面的代码中,我们定义了一个名为signal_handler
的信号处理函数,它会在接收到信号时被调用。在main
函数中,我们使用signal
函数注册了一个信号处理函数,捕获了SIGINT
信号,该信号在用户按下Ctrl+C时触发。
当程序运行时,它会进入一个无限循环,等待信号的到来。当接收到SIGINT
信号时,signal_handler
函数会被调用,并打印出接收到的信号编号。
这只是一个简单的示例,你可以根据自己的需求在信号处理函数中添加更多的逻辑来处理信号。请注意,不同的信号有不同的编号,可以在
头文件中找到它们的定义。