有没有相当于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()关闭句柄。