【发布时间】:2016-11-12 23:56:45
【问题描述】:
这是我的代码:
void signalHandler(int sigNum) {
OutputDebugStringA("i'm terminated\n");
exit(sigNum);
}
int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine,
_In_ int nCmdShow)
{
signal(SIGTERM, signalHandler);
while (1)
{
Sleep(100);
}
return 0;
}
当我通过 windows taskmgr 终止它时,DebugString 没有出现。 我的代码有问题吗?
【问题讨论】:
-
代码不可读,请在编辑帮助中查看如何格式化代码。你只需要缩进四个空格。
-
"SIGILL 和 SIGTERM 信号不是在 Windows 下生成的。它们是为了 ANSI 兼容性而包含在内的。" Windows 不使用 unix 信号。它们是 C 运行时概念。任务管理器在不产生信号的情况下终止应用程序。