C ++在Windows中发送一个简单的信号

有没有相当于Windows上的函数kill()?

int kill(pid_t pid, int sig); 

如果没有,是否有可能根据PID来testing一个进程是否正在运行?

谢谢

Windows在unix中没有信号。

您可以使用OpenProcess来检查进程是否存在 – 如果成功,或者由于访问错误而失败,则进程存在。

 bool processExists(DWORD ProcessID) { HANDLE hProcess = OpenProcess(SYNCHRONIZE, FALSE, ProcessID); if (hProcess != NULL) { CloseHandle(hProcess); return true; } // If the error code is access denied, the process exists but we don't have access to open a handle to it. return GetLastError() == ERROR_ACCESS_DENIED; } 

Windows中没有信号。 如果真正的杀戮打算然后使用TerminateProcess()。 你需要一个处理过程,从OpenProcess()中获取。 您需要询问PROCESS_TERMINATE访问权限。 CloseHandle()关闭句柄。