【发布时间】:2014-12-26 19:56:54
【问题描述】:
在 Windows 控制台应用程序中,可以使用以下命令捕获按下 ctrl+c:
#include <stdio.h>
#include <signal.h>
void SigInt_Handler(int n_signal)
{
printf("interrupted\n");
}
int main(int n_arg_num, const char **p_arg_list)
{
signal(SIGINT, &SigInt_Handler);
getchar(); // wait for user intervention
}
这很好用,但如果用户按下关闭控制台窗口的十字×,它根本不起作用。有什么信号吗?
我需要这个的原因是我有这个 CUDA 应用程序,如果在计算某些东西时关闭,它往往会导致计算机崩溃。代码是多平台的,所以我更喜欢使用信号而不是SetConsoleCtrlHandler。有什么办法吗?
【问题讨论】:
标签: c signals console-application windows-console