如果我在管道运行时尝试关闭管道,它会等到命令完成。有些命令永远运行,导致它无限冻结。我设法想出的唯一解决方案是确定 PID,终止进程然后关闭管道。但是我还没有找到一种安全地确定 PID 的方法。
FILE* pipe;
wchar_t* command;
pipe = _wpopen(command, L"r");
... // determine the PID and TerminateProcess
pclose(pipe);
那么如何从对 popen 的调用中确定 PID 呢?