panda-373のプロフィール
@panda-373 panda-373
ありがとう数1
質問数0
回答数1
- ベストアンサー数
- 1
- ベストアンサー率
- 100%
- お礼率
- 0%
- 登録日2008/04/05
- my $pid = open PIPE, "-|";の後の挙動
CGIプログラミング第2版 233ページに掲載されているコードがうまく動きません。 my $pid = open PIPE, "-|"; die "$をforkできません!" unless defined $pid; unless ( $pid ) { exec FIGLET, $string or die "figletへのパイプを開けません: $!"; } このコードは入力した文字列をアスキーアートにしてくれるものなのですが、どうも最後のfigletの行が実行されていないようなのです。 openの使い方が特殊らしく、少ない行数の割に、えらい複雑なコードだな~と感じています。 openを実行した時にフォークが発生し、最終的に子プロセスがfigletを実行してくれるはずなのですが、どうも子プロセスがいない感じがします。 例えば fork; print(0); こんな感じにフォークをした場合 00 のように0が2個出力されるのですが、 この例題のopenの直後に print(0); と記述しても 0は1個しか出力されませんでした。 子プロセスはどこへ行ってしまったのでしょうか。 この例題は私の理解力では意味不明です。 誰か分かりやすく教えてください~~