在Linux中,Ctrl+C是一个信号(SIGINT)的触发方式,用于中断当前正在运行的进程
要在程序中捕获信号,可以使用信号处理函数。在C语言中,可以使用signal()
或sigaction()
函数来设置信号处理函数。这里是一个使用signal()
函数的例子:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <stdbool.h>
// 定义一个信号处理函数
void signal_handler(int signal) {
if (signal == SIGINT) {
printf("捕获到Ctrl+C信号,程序即将退出。\n");
exit(0);
}
}
int main() {
// 设置信号处理函数
signal(SIGINT, signal_handler);
printf("按下Ctrl+C来中断程序。\n");
while (1) {
// 程序的其他操作
sleep(1);
}
return 0;
}
在这个例子中,我们定义了一个名为signal_handler
的信号处理函数,当捕获到SIGINT信号(即Ctrl+C)时,该函数会被调用。然后我们使用signal()
函数将signal_handler
设置为SIGINT信号的处理函数。这样,当用户按下Ctrl+C时,程序会执行信号处理函数中的代码,从而优雅地退出。