alarm
alarm SECONDS
alarm SECONDS
引数で指定した秒数が経過した後に、自プロセスにシグナルアラームが送られてくるようにします。一度に1つのタイマだけが設定可能です。
この関数を呼び出すと、前回のタイマは無効になります。引数を0に指定して呼び出すと、タイマを起動しないで以前のタイマをキャンセルすこともできます。
以前のタイマの残り時間が、返却値となります。
1 秒より精度の高いスリープを行なうには、Perl
のsyscall
関数を使うことができます
(setitimer
をサポートしているシステムに限ります。サポートしていなければ、select
の項を参照してください)。
プロセスについては用語集「プロセス」を参照してください。
alarmの使い方
alarm
をシステムコールの時間切れのために使う場合、下記のようにeval
/die
のペアを利用してください。alarm
とsleep
の組み合わせはうまく動作しない可能性があります。
eval { local $SIG{ALRM} = sub { die "time out\n" }; alarm 5; $buf =; alarm 0; }; if ($@) { die unless $@ eq "alarm\n"; }