=encoding euc-jp =head1 NAME =begin original sigtrap - Perl pragma to enable simple signal handling =end original sigtrap - 単純なシグナルハンドリングを有効にするための Perl プラグマ =head1 SYNOPSIS use sigtrap; use sigtrap qw(stack-trace old-interface-signals); # equivalent use sigtrap qw(BUS SEGV PIPE ABRT); use sigtrap qw(die INT QUIT); use sigtrap qw(die normal-signals); use sigtrap qw(die untrapped normal-signals); use sigtrap qw(die untrapped normal-signals stack-trace any error-signals); use sigtrap 'handler' => \&my_handler, 'normal-signals'; use sigtrap qw(handler my_handler normal-signals stack-trace error-signals); =head1 DESCRIPTION =begin original The B pragma is a simple interface to installing signal handlers. You can have it install one of two handlers supplied by B itself (one which provides a Perl stack trace and one which simply Cs), or alternately you can supply your own handler for it to install. It can be told only to install a handler for signals which are either untrapped or ignored. It has a couple of lists of signals to trap, plus you can supply your own list of signals. =end original B プラグマはシグナルハンドラを設定するための単純な インターフェースです。 B 地震から提供される二つのハンドラ (Perl スタックトレースを 提供するものと単に C するもの) を設定したり、独自のハンドラを 設定したりできます。 トラップされていないか無視されるシグナルに対するハンドルのみを設定できます。 トラップできるシグナルの一覧が二つあり、さらに独自のシグナルの一覧を 指定できます。 =begin original The arguments passed to the C statement which invokes B are processed in order. When a signal name or the name of one of B's signal lists is encountered a handler is immediately installed, when an option is encountered it affects subsequently installed handlers. =end original B を起動する C 文に渡される引数は順番に処理されます。 シグナル名や B のシグナル一覧の名前の一つの場合は直ちに設定され、 オプションの場合はその後設定されるハンドラに影響します。 =head1 OPTIONS (オプション) =head2 SIGNAL HANDLERS (シグナルハンドラ) =begin original These options affect which handler will be used for subsequently installed signals. =end original これらのオプションは引き続いて設定されるシグナルで使われるハンドラに 影響します。 =over 4 =item B =begin original The handler used for subsequently installed signals outputs a Perl stack trace to STDERR and then tries to dump core. This is the default signal handler. =end original 引き続いて設定されるシグナルが Perl スタックトレースを STDERR に出力し、 それからコアダンプしようとするために使われるハンドラ。 これはデフォルトのシグナルハンドラです。 =item B =begin original The handler used for subsequently installed signals calls C (actually C) with a message indicating which signal was caught. =end original 引き続いて設定されたシグナルが、どのシグナルが捕捉されたかを示す メッセージと共に C (実際には C) を呼び出すハンドラ。 =item B I =begin original I will be used as the handler for subsequently installed signals. I can be any value which is valid as an assignment to an element of C<%SIG>. See L for examples of handler functions. =end original I は引き続いて設定されるシグナルのためのハンドルとして 使われます。 I は C<%SIG> の要素への代入できるどの値も使えます。 ハンドラ関数の例については L を参照してください。 =back =head2 SIGNAL LISTS =begin original B has a few built-in lists of signals to trap. They are: =end original B にはいくつかの、トラップするシグナルの組み込みの一覧があります。 それは: =over 4 =item B =begin original These are the signals which a program might normally expect to encounter and which by default cause it to terminate. They are HUP, INT, PIPE and TERM. =end original プログラムが普通遭遇することを想定して、デフォルトでは終了するシグナルです。 これは HUP, INT, PIPE, TERM です。 =item B =begin original These signals usually indicate a serious problem with the Perl interpreter or with your script. They are ABRT, BUS, EMT, FPE, ILL, QUIT, SEGV, SYS and TRAP. =end original 普通は Perl インタプリタやスクリプトの重大な問題を示しているシグナルです。 これは ABRT, BUS, EMT, FPE, ILL, QUIT, SEGV, SYS, TRAP です。 =item B =begin original These are the signals which were trapped by default by the old B interface, they are ABRT, BUS, EMT, FPE, ILL, PIPE, QUIT, SEGV, SYS, TERM, and TRAP. If no signals or signals lists are passed to B, this list is used. =end original 古い B インターフェースではデフォルトでトラップされていた シグナルです; これは ABRT, BUS, EMT, FPE, ILL, PIPE, QUIT, SEGV, SYS, TERM, TRAP です。 B にシグナルの一覧が渡されなかった場合、この一覧が使われます。 =back =begin original For each of these three lists, the collection of signals set to be trapped is checked before trapping; if your architecture does not implement a particular signal, it will not be trapped but rather silently ignored. =end original これら三つの一覧のそれぞれに対して、トラップされるシグナル集合の内容は、 トラップされる前にチェックされます; 使っているアーキテクチャに 実装されていないシグナルがある場合、それはトラップされずに暗黙に無視します。 =head2 OTHER (その他) =over 4 =item B =begin original This token tells B to install handlers only for subsequently listed signals which aren't already trapped or ignored. =end original このトークンは、引き続いて挙げられるシグナルの家、既にトラップされていたり 無視されていたりしないものに対してのみハンドラを設定するように B に 伝えます。 =item B =begin original This token tells B to install handlers for all subsequently listed signals. This is the default behavior. =end original このトークンは、引き続いて挙げられるシグナル全てにハンドラを設定するように B に伝えます。 これはデフォルトの振る舞いです。 =item I =begin original Any argument which looks like a signal name (that is, C) indicates that B should install a handler for that name. =end original シグナル名のように見える (つまり C) 全ての引数は B がその名前に対してハンドルを設定することを示します。 =item I =begin original Require that at least version I of B is being used. =end original 少なくともバージョン I の B が使われることを要求します。 =back =head1 EXAMPLES (例) =begin original Provide a stack trace for the old-interface-signals: =end original old-interface-signals のためにスタックトレースを提供します: use sigtrap; =begin original Ditto: =end original これも同じです: use sigtrap qw(stack-trace old-interface-signals); =begin original Provide a stack trace on the 4 listed signals only: =end original 四つのシグナルにだけスタックトレースを提供します: use sigtrap qw(BUS SEGV PIPE ABRT); =begin original Die on INT or QUIT: =end original INT または QUIT で die します: use sigtrap qw(die INT QUIT); =begin original Die on HUP, INT, PIPE or TERM: =end original HUP, INT, PIPE, TERM で die します: use sigtrap qw(die normal-signals); =begin original Die on HUP, INT, PIPE or TERM, except don't change the behavior for signals which are already trapped or ignored: =end original HUP, INT, PIPE, TERM で die しますが、既にトラップされているか無視されている シグナルの振る舞いは変えません: use sigtrap qw(die untrapped normal-signals); =begin original Die on receipt one of an of the B which is currently B, provide a stack trace on receipt of B of the B: =end original 現在 B<トラップされていない> B の一つを受け取ると die し、 B の B<どれでも> を受け取るとスタックトレースを提供します: use sigtrap qw(die untrapped normal-signals stack-trace any error-signals); =begin original Install my_handler() as the handler for the B: =end original B のためのハンドラとして my_handler() を設定します: use sigtrap 'handler', \&my_handler, 'normal-signals'; =begin original Install my_handler() as the handler for the normal-signals, provide a Perl stack trace on receipt of one of the error-signals: =end original normal-signals のためのハンドラとして my_handler() を設定し、 error-signals を受け取ったときに Perl スタックトレースを提供します: use sigtrap qw(handler my_handler normal-signals stack-trace error-signals); =begin meta Translate: SHIRAKATA Kentaro Status: complete =end meta =cut