生成したプロセスでスクリプトを実行し、その結果を取得したいと考えております。
スクリプトは実行結果を標準または標準エラーに出力される為、パイプを2本用意して
そこから結果を読み取ろうと試みております。
スクリプトの処理に時間がかかるため非同期で2つのパイプを監視し、
パイプに出力があるまでWaitする方法(監視方法)がわかりません。
<行ったこと>
- 名前付きパイプの生成
- 子プロセス側(パイプの出力側)のハンドル取得 CreateFile(1のパイプ名)
- 子プロセスのSTATUPINFOのhStdOutput, hStdErrorに2のハンドルを指定
- 子プロセス生成 CreateProcess(実行スクリプトPATHを指定)
ここで子プロセスの終了を待って(WaitForSingleObject(pi.hProcess, INFINITE))
ReadFileでパイプの中身を確認する事が出来ました。
プロセス終了ではなくパイプに書き込みがあるまでWaitするにはどうすれば良いでしょうか?
(select関数のような事がしたいのですが、CreateEventでイベント通知出来るのかな?)
または、他の方法があれば教えてください。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/11 01:28
2020/07/14 13:10
退会済みユーザー
2020/07/14 14:52