这是我的代码:
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没有显示出来。 我的代码有问题吗?
答案 0 :(得分:2)
Windows不像Unix系统那样使用信号。
答案 1 :(得分:0)
TaskManager
使用TerminateProcess
API调用来终止所选进程。已终止的进程未收到任何通知。因此,您无法使用SIGTERM
信号处理它。