在Windows上确定从调用popen的PID



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

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

那么我如何确定从调用popen的PID ?

我不认为有一个直接的方法来获得pid。使用CreateToolhelp32SnapshotEnumProcesses来获得pids的列表,并选择您的。

下面是一些枚举进程的示例代码。div。

最新更新