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
}