在windows中生成子进程获取返回值的方法是什么?看起来像ShellExecute()
使用起来比原来更简单CreateProcess()
,但从我迄今为止所做的阅读来看,两者都没有表明如何检查生成进程的返回值。这是怎么做到的?
谢谢,
安迪
要获取 Windows 上进程的退出代码,您可以使用GetExitCodeProcess() http://msdn.microsoft.com/en-us/library/windows/desktop/ms683189%28v=vs.85%29.aspx.
接受进程 ID 作为参数并等待五秒以完成然后获取其退出代码的示例应用程序:
int main(int a_argc, char** a_argv)
{
int pid = atoi(*(a_argv + 1));
HANDLE h = OpenProcess(SYNCHRONIZE | PROCESS_QUERY_INFORMATION, FALSE, pid);
if (NULL != h)
{
WaitForSingleObject(h, 5000); // Change to 'INFINITE' wait if req'd
DWORD exit_code;
if (FALSE == GetExitCodeProcess(h, &exit_code))
{
std::cerr << "GetExitCodeProcess() failure: " <<
GetLastError() << "\n";
}
else if (STILL_ACTIVE == exit_code)
{
std::cout << "Still running\n";
}
else
{
std::cout << "exit code=" << exit_code << "\n";
}
CloseHandle(h);
}
else
{
std::cerr << "OpenProcess() failure: " << GetLastError() << "\n";
}
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)