1

如果我在管道运行时尝试关闭管道,它会等到命令完成。有些命令永远运行,导致它无限冻结。我设法想出的唯一解决方案是确定 PID,终止进程然后关闭管道。但是我还没有找到一种安全地确定 PID 的方法。

FILE* pipe;
wchar_t* command;

pipe = _wpopen(command, L"r");   
... // determine the PID and TerminateProcess
pclose(pipe);

那么如何从对 popen 的调用中确定 PID 呢?

4

1 回答 1

0

我认为没有直接的方法可以获取pid. 使用CreateToolhelp32SnapshotEnumProcesses获取pids并选择您的列表。

这是一些枚举进程的示例代码。还有一些

于 2012-12-29T06:27:10.790 回答