Perl-alarm

提供:Dev Guides
移動先:案内検索

Perlアラーム機能

説明

この関数は「アラーム」を設定し、現在のプロセスがEXPR秒でSIGALRMシグナルを受信するようにします。 EXPRを省略すると、代わりに$ _の値が使用されます。

システムによってアラーム機能の実装方法が異なるため、実際の時間遅延は正確ではありません。 実際の時間は、要求された値よりも最大で1秒長い場合があります。 一度に設定できるアラームタイマーは1つだけです。 タイマーがすでに実行されていて、アラーム機能に新しい呼び出しを行うと、アラームタイマーは新しい値にリセットされます。 値0を指定すると、新しいタイマーを設定せずに実行中のタイマーをリセットできます。

構文

以下は、この関数の簡単な構文です-

alarm EXPR

alarm

戻り値

この関数は整数値を返します。 前のタイマーの残りの秒数。

以下は、その基本的な使用法を示すコード例です-

#!/usr/bin/perl

eval {
   local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required
   alarm $timeout;
   $nread = sysread SOCKET, $buffer, $size;
   alarm 0;
};
if ($@) {
   die unless $@ eq "alarm\n";   # propagate unexpected errors
      # timed out
} else {
   # didn't
}