在此代码中,此父进程分叉5个子进程,然后在无限循环中将STDIN回送到STDOUT。但是在2个子进程同时终止后,从STDIN读取总是立即返回。看起来它变成了非阻塞,但我猜不是。请有人告诉我有什么问题?!
$SIG{CHLD} = sub{print "child is dead\n"};
for my $i(1..5)
{
if(!fork){
$SIG{CHLD} = "DEFAULT";
sleep 5;
exit(0);
}
}
while(1){
my $line = <>;
print "$$:". $line ."\n";
}