5部 関数リファレンス

alarm

2011年9月20日
alarm
alarm SECONDS

引数で指定した秒数が経過した後に、自プロセスにシグナルアラームが送られてくるようにします。一度に1つのタイマだけが設定可能です。

この関数を呼び出すと、前回のタイマは無効になります。引数を0に指定して呼び出すと、タイマを起動しないで以前のタイマをキャンセルすこともできます。
以前のタイマの残り時間が、返却値となります。

1 秒より精度の高いスリープを行なうには、Perlsyscall関数を使うことができます (setitimerをサポートしているシステムに限ります。サポートしていなければ、selectの項を参照してください)。

プロセスについては用語集「プロセス」を参照してください。

alarmの使い方

alarmをシステムコールの時間切れのために使う場合、下記のようにeval/dieのペアを利用してください。alarmsleepの組み合わせはうまく動作しない可能性があります。

eval {
local $SIG{ALRM} = sub { die "time out\n" };
alarm 5;
$buf = ;
alarm 0;
};
if ($@) {
die unless $@ eq "alarm\n";
}

Comment

コメントを残す

メールアドレスが公開されることはありません。

リズムファクトリーはホームページの制作会社です。
ホームページ制作に関するご要望・ご相談はこちらからどうぞ。