0

我第一次尝试使用 fork,所以我可以重定向用户的网络浏览器,然后继续处理。我查找了使用 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 回答