在C中按“Ctrl + C”时如何防止控制台应用程序终止?

我发现在Windows上从GCC编译的控制台应用程序总是在按Ctrl+C时终止。

是否有任何可行的方法可以阻止控制台应用程序在按Ctrl+C时终止?

当用户按下控制C时,信号(SIGINT)将发送到您的过程。 当大多数信号发送到进程时,该进程必须处理信号或操作系统将其终止。 所以……你需要做的就是为SIGINT安装一个信号处理程序。

以下是未经测试的:

 #include  static void ignore_control_c(int sig) { /* re-arm the signal handler but otherwise ignore the signal */ signal(sig, ignore_control_c); } int main(int argc, char *argv) { signal(SIGINT, ignore_control_c); ... 

安装SIGINT处理程序。 默认情况下,此处理程序设置为终止您的进程。 对于Windows,您可以使用Win32特定的SetConsoleCtrlHandler(..)

看看上面链接的文档,尤其是示例。