如果我在管道运行时尝试关闭管道,它会等待命令完成。有些命令会永远运行,导致无限冻结。我设法提出的唯一解决方案是确定PID,终止进程然后关闭管道。但我还没有找到一种安全确定PID的方法。
FILE* pipe;
wchar_t* command;
pipe = _wpopen(command, L"r");
... // determine the PID and TerminateProcess
pclose(pipe);
那么如何通过调用popen来确定PID?
答案 0 :(得分:0)
我认为没有直接获取pid
的方法。使用CreateToolhelp32Snapshot
或EnumProcesses
获取pids
的列表并选择您的。{/ p>
这是枚举进程的一些sample code。 Some more