为什么这个代码在我运行后立即终止?我认为应该在终止之前等待10秒钟?
#include<windows.h>
#include<stdio.h>
int main(){
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
CreateProcess("child.exe", NULL, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
WaitForSingleObject(pi.hProcess, 10000);
TerminateProcess(pi.hProcess, 0);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}
答案 0 :(得分:3)
也许CreateProcess
失败了?
如果您的应用程序依赖于正在创建的子进程,则应添加异常或断言:
if (!CreateProcess("child.exe", NULL, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi))
{
assert(!"child.exe didn't run");
return 1;
}