while(GetExitCodeProcess(processInfo.hProcess, &exitCode)
&& exitCode == STILL_ACTIVE)
{
ReadFile(defaultSTDIN, chBuf, 1, &dwRead, 0);
WriteFile(writingEnd, chBuf, 1, &dwWritten, 0);
}
上面代码的问题在于,即使通过 processInfo.hProcess 引用的子进程已经退出,我们仍然陷入 while 循环中,因为 ReadFile() 正在等待输入。解决这个问题的最佳方法是什么?
您需要的是使用异步读取文件FILE_FLAG_OVERLAPPED
打开文件时的标志,并指定OVERLAPPED
结构到ReadFile
功能。然后您可以等待读取操作和进程终止,并采取适当的行动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)