$SIG{'ALRM'}でALARMを掴みたいんだけど・・・

[上に] [前に] [次に]
かかし 2000/06/06(火) 14:52:15
下記のスクリプトなんですが、
10秒たったらalarmと表示して終わると認識しているのですが、
実際にはすぐにtimeoutが実行されちゃいます。
なぜ?


#!/usr/local/bin/perl

$SIG{'ALRM'} = &timeout;
alarm(10);
while (1) {
1;
}

sub timeout
{
print "alarm\n";
exit;
}

ねね 2000/06/06(火) 15:26:22

$SIG{'ALRM'} = "timeout";
じゃないですか?

あと、Windows系だと(NTでも)alarmは使えないので、
eval{ alarm(10); };とした方がいいです。

[上に] [前に] [次に]