我发现在Windows上从GCC编译的控制台应用程序总是在按 Ctrl + C 时终止。
是否有任何可行的方法可以阻止控制台应用程序在按 Ctrl + C 时终止?
答案 0 :(得分:3)
当用户按下控制C时,会向您的过程发送一个信号(SIGINT)。当大多数信号发送到进程时,该进程必须处理信号或操作系统将其终止。所以......你需要做的就是为SIGINT安装一个信号处理程序。
以下是未经测试的:
#include <signal.h>
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);
...
答案 1 :(得分:1)
安装SIGINT处理程序。默认情况下,此处理程序设置为终止您的进程。对于Windows,您可以使用特定于Win32的SetConsoleCtrlHandler(..)
注册。
查看上面链接的文档,尤其是示例。