0

Windows x64マシンを使用していて、コマンドからSTDOUTおよびSTDERRストリームをキャプチャしようとしています。また、コマンドのSTDINに書き込む必要があります。私はこれにperlのIPC::Open3を使おうとしていますが、運がありません。ここに掲載されているスクリプトと、このスクリプトとしてのコマンドを使用しています。もちろん、Windowsの場合は$cmd変数を「perltest.pl」に置き換えました。

'StdOut!'を印刷することになっています および「StdErr!」とpidがありますが、取得できるのはPIDのみです。それが私のオペレーティングシステムによるものなのか、それともスレッドが10年前のものなのかはわかりません(大したことではありませんが、Perl 5はほぼ18歳ですよね?)。別の僧侶がこのスクリプトを投稿して、他の僧侶の問題を修正しましたが、私のコンピューターでは終了しません。

open3を使用してperlでコマンドを開始し、STDINに書き込み、STDERRとSTDOUTの両方をキャプチャする実例を教えてもらえますか?

4

1 に答える 1

3

selectWindowsのソケットでのみ機能します。パイプでは機能しません。open3代わりにソケットを作成し、パイプを作成させる代わりにそれらを渡すこともできますが(ここに表示されているように)、代わりにIPC::Runなどの高レベルのモジュールを使用することをお勧めします。open3かなり低レベルの関数です。

于 2012-08-02T20:03:41.293 に答える