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