OPEN2(3) USER COMMANDS OPEN2(3) NAME IPC::Open2, open2 - 読み書き両用のプロセスをオープンする SYNOPSIS use IPC::Open2; $pid = open2('rdr', 'wtr', 'some cmd and args'); # または $pid = open2('rdr', 'wtr', 'some', 'cmd', 'and', 'args'); DESCRIPTION open2() 関数は、与えられた $cmd を spawn し、読み込み用には $rdr と、書き込み用には $wtr と接続します。 これは、 open(HANDLE, "|cmd args"); としたときに動作すると思われるものです。 open2() はチャイル ドプロセスのプロセス ID を返します。 失敗で返ることはありま せん。 単に /^open2:/ にマッチする例外を起こします。 WARNING これは、ファイルハンドルを自動的に作ってはくれません。 自分 で用意する必要があります。 ですから、何かを入れてもらうこと を期待して、空の変数を渡さないでください。 さらに、これは、永久にブロックされるかも知れませんので、たい へん危険です。 これは、bc のように、それに書き込み、それか ら読み込むような、双方向のやり取りを考えています。 これは、 bc のようなコマンドは、一時期に1行読み込み、一時期に1行出 力するといったことを「知っている」ので、おそらく安全です。 しかし、まず入力ストリームをすべて読む、sort のようなプログ ラムは、かなりデッドロックを引き起こす可能性があります。 別 解として、open3 manpage を参照してください。 Perl module manpages Last change: Release 5.0 Patchlevel 00 1