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