まくまくPerlノート
SIGINT シグナル (Ctrl-C) をハンドリングする
2008-04-16

%SIG ハッシュに対してサブルーチンの名前を登録すると、そのサブルーチンがシグナルハンドラとして呼び出されるようになります。 次の例では、SIGINT シグナルに対するシグナルハンドラを設定しています。

sub sigint_handler {
    print "SIGINT\n";
}
$SIG{'INT'} = 'sigint_handler';

一般的なシェルで Ctrl-C を入力すると、プロセスに対して SIGINT が送られるようになっています。 デフォルトでは、SIGINT を受信したプロセスは終了するようになっていますが、上記のようにシグナルハンドラを登録しておけば、代替の処理を行えるようになります。

2008-04-16