プロセスのstdoutとstderrを同じハンドルにパイプするにはどうすればよいですか? UNIXシステムでは、それはかなり簡単です。createPipe
を使い、書き込み終了をrunProcess
にstdoutとstderrとして渡してください。 Windowsでは難しいです:プロセスのstdoutとstderrを同じハンドルにパイプするにはどうすればよいですか?
unix-compatもWin32パッケージも、パイプを作成する方法をエクスポートしません。
openTempFile
(パイプのシミュレートに使用できる)は、作成されたHandle
に間違ったモードを設定します。
編集:いくつかのより多くのコンテキストを与えるために:私は、プロセスを実行すると、それはクロスプラットフォームな方法で、同じHandle
にそのstdoutとstderrを書く持っています。
興味深い。どのように権限が間違っていますか?ドキュメントによると、 'openTempFile'の' Handle'は 'ReadWrite'パーミッションで作られています。これは他のプロセス(同じユーザが走っている)が書き込むのに十分なはずです。 –