我有一个正在运行的C程序(在终端中)
我的程序有一个循环(例如while(1){}
),
所以如果我想停止它,我必须按ctrl + C
我的问题:
当我按下Ctrl + C时,有没有办法在我的C程序中运行最后一个函数?
例如我在我的linux终端输入了Ctrl+C
然后我的程序检测到我输入Ctrl+C
并打印出“再见”或打开文件等内容。
提前致谢。
答案 0 :(得分:1)
您需要使用signal
调用来安装SIGINT信号的处理程序。
答案 1 :(得分:1)
按ctrl + c时,会生成信号SIGINT。所以你需要写一个函数来捕获那个信号。为此你可以写一个函数说,
void catch_signal_ctrlC(int s)
{
//...
printf("Bye");
}
然后将信号寄存器记录为,
signal(SIGINT, catch_signal_ctrlC)
这个系统调用将注册catch_signal_ctrlC()函数来捕获SIGINT,即每当你按下终端中的ctrl + c时它就会被调用