実行中にパイプを閉じようとすると、コマンドが完了するまで待機します。一部のコマンドは永久に実行され、無限にフリーズします。私が思いついた唯一の解決策は、PID を特定し、プロセスを終了してからパイプを閉じることです。しかし、PID を安全に決定する方法が見つかりませんでした。
FILE* pipe;
wchar_t* command;
pipe = _wpopen(command, L"r");
... // determine the PID and TerminateProcess
pclose(pipe);
では、popen の呼び出しから PID を特定するにはどうすればよいでしょうか。