\fBこのシステムコールの使用は避け、\fP 代わりに \fBsigaction\fP(2) を使用すること。 下記の「移植性」を参照。
\fBsignal\fP() はシグナル \fIsignum\fP の処理方法を \fIhandler\fP に設定する。 \fIhandler\fP には、
-\fBSIG_IGN\fPã\80\81 \fBSIG_DFL\fPã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81\8cå®\9a義ã\81\97ã\81\9fé\96¢æ\95° (ã\80\8cã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©」) のアドレスの いずれかを指定する。
+\fBSIG_IGN\fPã\80\81 \fBSIG_DFL\fPã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81\8cå®\9a義ã\81\97ã\81\9fé\96¢æ\95° (ã\80\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼」) のアドレスの いずれかを指定する。
シグナル \fIsignum\fP がプロセスに配送されると、以下のいずれかが発生する。
.TP 3
.TP
*
処理方法として関数が設定されている場合、 まず最初に処理方法が \fBSIG_DFL\fP にリセットされるかそのシグナルのブロックが実行された後、
-\fIsignum\fP を引き数として \fIhandler\fP が呼び出される。 ハンドラが起動される際にシグナルがブロックされた場合、
-ハンドラが返る際にそのシグナルのブロックが解除される。
+\fIsignum\fP ã\82\92å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ \fIhandler\fP ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82 ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cèµ·å\8b\95ã\81\95ã\82\8cã\82\8bé\9a\9bã\81«ã\82·ã\82°ã\83\8aã\83«ã\81\8cã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81
+ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¿\94ã\82\8bé\9a\9bã\81«ã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\81®ã\83\96ã\83ã\83\83ã\82¯ã\81\8c解é\99¤ã\81\95ã\82\8cã\82\8bã\80\82
.PP
シグナル \fBSIGKILL\fP と \fBSIGSTOP\fP は捕捉できず、無視することもできない。
.SH 返り値
-\fBsignal\fP() ã\81¯ã\80\81ä»\8aã\81¾ã\81§ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©の値を返す。 エラーの場合は \fBSIG_ERR\fP を返し、 \fIerrno\fP
+\fBsignal\fP() ã\81¯ã\80\81ä»\8aã\81¾ã\81§ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼の値を返す。 エラーの場合は \fBSIG_ERR\fP を返し、 \fIerrno\fP
にエラーの原因を示す値を設定する。
.SH エラー
.TP
.PP
\fBSIGCHLD\fP の動作として \fBSIG_IGN\fP を設定した場合の詳細な動作については、 \fBsigaction\fP(2) を参照すること。
.PP
-ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©内から安全に呼び出すことができる、 async\-signal\-safe functions (非同期シングルで安全な関数) の
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼内から安全に呼び出すことができる、 async\-signal\-safe functions (非同期シングルで安全な関数) の
リストについては \fBsignal\fP(7) を参照。
.PP
.\" libc4 and libc5 define
.in
.SS 移植性
移植性のある \fBsignal\fP() の使い方は、シグナルの処理方法を \fBSIG_DFL\fP か \fBSIG_IGN\fP に設定する方法だけである。
-ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©を設定するのに \fBsignal\fP() を使ったときの動作はシステムにより異なる (POSIX.1
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼を設定するのに \fBsignal\fP() を使ったときの動作はシステムにより異なる (POSIX.1
は明示的にこの違いを認めている)。 \fB移植性が必要なときはこのシステムコールを使用しないこと。\fP
POSIX.1 は、 \fBsigaction\fP(2) を規定することで移植性に関する混乱を解決した。 \fBsigaction\fP(2)
-ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©が起動される際の挙動を明示的に制御できる。 \fBsignal\fP() の代わりにこのインターフェイスを使うこと。
+ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼が起動される際の挙動を明示的に制御できる。 \fBsignal\fP() の代わりにこのインターフェイスを使うこと。
-オリジナルの UNIX システムでは、 \fBsignal\fP() を使って設定されたハンドラがシグナルの配送により起動されると、
+ã\82ªã\83ªã\82¸ã\83\8aã\83«ã\81® UNIX ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81 \fBsignal\fP() ã\82\92使ã\81£ã\81¦è¨å®\9aã\81\95ã\82\8cã\81\9fã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\81®é\85\8dé\80\81ã\81«ã\82\88ã\82\8aèµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81
そのシグナルの処理方法は \fBSIG_DFL\fP にリセットされ、システムは同じシグナルがさらに生成されても
シグナルの配送をブロックしなかった。これは、以下のフラグで \fBsigaction\fP(2) を呼び出すのと等価である。
sa.sa_flags = SA_RESETHAND | SA_NODEFER;
System\ V でも、 \fBsignal\fP() に対してこれらの挙動を規定している。
-ã\81\93ã\81\86ã\81\97ã\81\9fæ\8c\99å\8b\95ã\81¯ã\81¾ã\81\9aã\81\8fã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\81\8cã\83\8fã\83³ã\83\89ã\83©自身を再設定する機会が 来るより前に、同じシグナルがまた配送される可能性がある。
-さらに、同じシグナルが立て続けに配送されると、同じシグナルが ハンドラを繰り返し起動されることになる。
+ã\81\93ã\81\86ã\81\97ã\81\9fæ\8c\99å\8b\95ã\81¯ã\81¾ã\81\9aã\81\8fã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cã\83\8fã\83³ã\83\89ã\83©ã\83¼自身を再設定する機会が 来るより前に、同じシグナルがまた配送される可能性がある。
+ã\81\95ã\82\89ã\81«ã\80\81å\90\8cã\81\98ã\82·ã\82°ã\83\8aã\83«ã\81\8cç«\8bã\81¦ç¶\9aã\81\91ã\81«é\85\8dé\80\81ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81å\90\8cã\81\98ã\82·ã\82°ã\83\8aã\83«ã\81\8c ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92ç¹°ã\82\8aè¿\94ã\81\97èµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82
BSD はこの状況が改善したが、残念なことに、その過程で既存の \fBsignal\fP() の挙動も変更された。 BSD
-ã\81§ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81\8cèµ·å\8b\95ã\81\95ã\82\8cã\81\9fé\9a\9bã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95ã\81¯ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81\9aã\80\81 ã\83\8fã\83³ã\83\89ã\83©の実行中は、同じシグナルのさらなる生成は配送がブロックされる。
-また、 シグナルハンドラが中断された場合、 停止中のシステムコールのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定した
+ã\81§ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cèµ·å\8b\95ã\81\95ã\82\8cã\81\9fé\9a\9bã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95ã\81¯ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81\9aã\80\81 ã\83\8fã\83³ã\83\89ã\83©ã\83¼の実行中は、同じシグナルのさらなる生成は配送がブロックされる。
+ã\81¾ã\81\9fã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cä¸æ\96ã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81 å\81\9cæ¢ä¸ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\81\84ã\81\8fã\81¤ã\81\8bã\81¯è\87ªå\8b\95ç\9a\84ã\81«å\86\8dã\82¹ã\82¿ã\83¼ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 BSD ã\81®æ\8c\99å\8b\95ã\81¯ã\80\81 以ä¸\8bã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81\9f
\fBsigaction\fP(2) の呼び出しと等価である。
sa.sa_flags = SA_RESTART;
\fBsigqueue\fP(3), \fBsigsetops\fP(3), \fBsigvec\fP(3), \fBsysv_signal\fP(3),
\fBsignal\fP(7)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部である。
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部である。
プロジェクトの説明とバグ報告に関する情報は \%http://www.kernel.org/doc/man\-pages/ に書かれている。