如何在C++中捕获Ctrl+C事件?
发布于 2018-04-12 08:05:58
signal
并不是最可靠的方式,因为它在实现上有所不同。我会推荐使用sigaction
。代码:
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
void my_handler(int s){
printf("Caught signal %d\n",s);
exit(1);
}
int main(int argc,char** argv)
{
struct sigaction sigIntHandler;
sigIntHandler.sa_handler = my_handler;
sigemptyset(&sigIntHandler.sa_mask);
sigIntHandler.sa_flags = 0;
sigaction(SIGINT, &sigIntHandler, NULL);
pause();
return 0;
}
发布于 2018-04-12 09:17:19
对于Windows控制台应用程序,你希望使用SetConsoleCtrlHandler来处理CTRL+ C和CTRL+ BREAK。
参考这里的例子。
https://stackoverflow.com/questions/-100008073
复制相似问题