トップ «前の日記(2005-05-18) 最新 次の日記(2005-05-20)» 編集

豊田正史のSLとは関係ございません


2005-05-19

_ [開発] Perlで子プロセスのエラー出力が親プロセスに横取りされる

ループの中で以下のようにfork,execを繰り返していたら、最後にforkしたプロセスでだけ、err.logに吐かれるべき結果が親プロセスのエラー出力に吐かれるという現象に悩まされた。それ以外のプロセスではきちんとerr.logに出力されている。

$pid = fork();
if ($pid == 0) {
  exec("foo 2> err.log");
}

_ 結局、以下のようにしたら解決。うーむ。

$pid = fork();
if ($pid == 0) {
  open(STDERR, "> err.log");
  exec("foo");
}

README日記の書き方