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

を直接取得する方法はないと思いますpidCreateToolhelp32Snapshotまたはを使用EnumProcessesしてリストを取得し、自分のリストをpids選択します。

プロセスを列挙するサンプル コードを次に示します。もう少し

于 2012-12-29T06:27:10.790 に答える