0

初めてフォークを使用しようとしているので、ユーザーのWebブラウザーをリダイレクトして、処理を続行できます。forkを使用するためのコードを調べましたが、子プロセスが実行されません(つまり、ファイルが作成されません)。私は何が間違っているのですか?

#! /usr/bin/perl 

if ($pid = fork) { } 
else { 
  close STDOUT(); 
  open(FILE,'>test.txt'); 
   print FILE time; 
  close(FILE); 
  exit(0); 
} 
print "Location: http://mydomain.com/\n\n";
4

1 に答える 1

5

STDOUT()は、Perl に という関数を探しさせ、STDOUT見つからない場合は、子プロセスを中止します。

$ perl -we 'close STDOUT()'
Undefined subroutine &main::STDOUT called at -e line 1.

あなたはただ言う必要があります

close(STDOUT);

また

close STDOUT;

このプログラムを Web ブラウザでしかテストできない場合でも、サーバー エラー ログにエラー メッセージが表示されるはずです。

于 2013-02-04T23:11:36.643 に答える