我已經寫了下面這段代碼來測試孩子和父母之間的信號。理想情況下,當孩子給父母提供一個SIGINT時,父母應該返回新的迭代並等待用戶輸入。這是我在perl 5.8中觀察到的,但是在perl 5.6.1(我被要求使用)中父母實際上是「被殺死」的。沒有下一個迭代。perl - 子進程發信號父母
my $parent_pid = $$;
$pid = fork();
if($pid == 0)
{
print "child started\n";
kill 2, $parent_pid;
}
else
{
while(1)
{
eval
{
$SIG{INT} = sub{die "GOTCHA";};
print 'inside parent'."\n";
$a = <>;
};
if([email protected])
{
print "got the signal!!!!\[email protected]\n";
next;
}
}
}
有人請給出一個解決這個問題或其他方式的信號,以便它進入新的迭代。
Sry基因,不能重現它。 – int2000
Windows還是不行? – ikegami
@ikegami windows它是 –