-'\" t
+.\" t
.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
.\" and Copyright (c) 2002, 2006 by Michael Kerrisk <mtk.manpages@gmail.com>
.\" and Copyright (c) 2008 Linux Foundation, written by Michael Kerrisk
.\" Added section on stop/cont signals interrupting syscalls.
.\" 2008-10-05, mtk: various additions
.\"
-.\" Japanese Version Copyright (c) 1997 Takafumi Naka
-.\" and 2005-2008 Akihiro MOTOKI
-.\" all rights reserved.
-.\" Translated 1997-02-13, Takafumi Naka <takafumi@yk.rim.or.jp>
-.\" Modified 1999-06-22, Tatsuo SEKINE <tsekine@isoternet.org>
-.\" Modified 1999-07-18, Takafumi Naka <takafumi@yk.rim.or.jp>
-.\" Modified 1999-12-06, NAKANO Takeo <nakano@apm.seikei.ac.jp>, LDP v1.28
-.\" Updated 2003-07-24, Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2005-02-23, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2006-07-28, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.36
-.\" Updated 2007-05-28, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.50
-.\" Updated 2007-09-08, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.64
-.\" Updated 2008-08-11, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.05
-.\" Updated 2008-11-21, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.13
-.\" Updated 2010-04-10, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.24
+.\"*******************************************************************
.\"
-.\"WORD: disposition ½èÍýÊýË¡
-.\"WORD: pending ½èÍýÂÔ¤Á
-.\"WORD: signal handler ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é
+.\" This file was generated with po4a. Translate the source file.
.\"
-.TH SIGNAL 7 2010-09-19 "Linux" "Linux Programmer's Manual"
-.\"O .SH NAME
-.\"O signal \- overview of signals
-.SH ̾Á°
-signal \- ¥·¥°¥Ê¥ë¤Î³µÍ×
-.\"O .SH DESCRIPTION
-.SH ÀâÌÀ
-.\"O Linux supports both POSIX reliable signals (hereinafter
-.\"O "standard signals") and POSIX real-time signals.
-Linux ¤Ï POSIX ¿®Íꥷ¥°¥Ê¥ë (reliable signal; °Ê¸å "ɸ½à¥·¥°¥Ê¥ë"¤Èɽµ)
-¤È POSIX ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎξÊý¤ËÂбþ¤·¤Æ¤¤¤ë¡£
-.\"O .SS "Signal Dispositions"
-.SS ¥·¥°¥Ê¥ë½èÍýÊýË¡
-.\"O Each signal has a current
-.\"O .IR disposition ,
-.\"O which determines how the process behaves when it is delivered
-.\"O the signal.
-¥·¥°¥Ê¥ë¤Ï¤½¤ì¤¾¤ì¸½ºß¤Î¡Ö½èÍýÊýË¡ (disposition)¡×¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢
-¤³¤Î½èÍýÊýË¡¤Ë¤è¤ê¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤¿ºÝ¤Ë¥×¥í¥»¥¹¤¬
-¤É¤Î¤è¤¦¤Ê¿¶Éñ¤¤¤ò¤¹¤ë¤«¤¬·è¤Þ¤ë¡£
+.\"*******************************************************************
+.TH SIGNAL 7 2012\-05\-01 Linux "Linux Programmer's Manual"
+.SH 名前
+signal \- シグナルの概要
+.SH 説明
+Linux は POSIX 信頼シグナル (reliable signal; 以後 "標準シグナル"と表記) と POSIX
+リアルタイムシグナルの両方に対応している。
+.SS シグナル処理方法
+シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方法によりシグナルが配送された際にプロセスが
+どのような振舞いをするかが決まる。
-.\"O The entries in the "Action" column of the tables below specify
-.\"O the default disposition for each signal, as follows:
-¸å½Ò¤Îɽ¤Î "Æ°ºî" ¤ÎÍó¤Î¥¨¥ó¥È¥ê¤Ï³Æ¥·¥°¥Ê¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î
-½èÍýÊýË¡¤ò¼¨¤·¤Æ¤ª¤ê¡¢°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤ò»ý¤Ä¡£
+後述の表の "動作" の欄のエントリは各シグナルのデフォルトの 処理方法を示しており、以下のような意味を持つ。
.IP Term
-.\"O Default action is to terminate the process.
-¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¥×¥í¥»¥¹½ªÎ»¡£
+デフォルトの動作はプロセス終了。
.IP Ign
-.\"O Default action is to ignore the signal.
-¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¤³¤Î¥·¥°¥Ê¥ë¤Î̵»ë¡£
+デフォルトの動作はこのシグナルの無視。
.IP Core
-.\"O Default action is to terminate the process and dump core (see
-.\"O .BR core (5)).
-¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¥×¥í¥»¥¹½ªÎ»¤È¥³¥¢¥À¥ó¥×½ÐÎÏ
-.RB ( core (5)
-»²¾È)¡£
+デフォルトの動作はプロセス終了とコアダンプ出力 (\fBcore\fP(5) 参照)。
.IP Stop
-.\"O Default action is to stop the process.
-¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¥×¥í¥»¥¹¤Î°ì»þÄä»ß¡£
+デフォルトの動作はプロセスの一時停止。
.IP Cont
-.\"O Default action is to continue the process if it is currently stopped.
-¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¡¢¥×¥í¥»¥¹¤¬Ää»ßÃæ¤Î¾ì¹ç¤Ë¤½¤Î¼Â¹Ô¤ÎºÆ³«¡£
+デフォルトの動作は、プロセスが停止中の場合にその実行の再開。
.PP
-.\"O A process can change the disposition of a signal using
-.\"O .BR sigaction (2)
-.\"O or
-.\"O .BR signal (2).
-.\"O (The latter is less portable when establishing a signal handler;
-.\"O see
-.\"O .BR signal (2)
-.\"O for details.)
-¥×¥í¥»¥¹¤Ï¡¢
-.BR sigaction (2)
-¤ä
-.BR signal (2)
-¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤ë
-.RB ( signal (2)
-¤ÎÊý¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ëºÝ¤Î°Ü¿¢À¤¬Ä㤤;
-¾ÜºÙ¤Ï
-.BR signal (2)
-¤ò»²¾È)¡£
-.\"O Using these system calls, a process can elect one of the
-.\"O following behaviors to occur on delivery of the signal:
-.\"O perform the default action; ignore the signal;
-.\"O or catch the signal with a
-.\"O .IR "signal handler" ,
-.\"O a programmer-defined function that is automatically invoked
-.\"O when the signal is delivered.
-.\"O (By default, the signal handler is invoked on the
-.\"O normal process stack.
-.\"O It is possible to arrange that the signal handler
-.\"O uses an alternate stack; see
-.\"O .BR sigaltstack (2)
-.\"O for a discussion of how to do this and when it might be useful.)
-¥·¥°¥Ê¥ë¤ÎÇÛÁ÷»þ¤Ëµ¯¤³¤ëÆ°ºî¤È¤·¤Æ
-¥×¥í¥»¥¹¤¬ÁªÂò¤Ç¤¤ë¤Î¤Ï¡¢¼¡¤Î¤¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë¡£
-¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò¼Â¹Ô¤¹¤ë¡¢¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¡¢
-.I "¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é (signal handler)"
-¤Ç¥·¥°¥Ê¥ë¤òÊ᪤¹¤ë¡£¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤È¤Ï¡¢¥·¥°¥Ê¥ëÇÛÁ÷»þ¤Ë
-¼«Æ°Åª¤Ëµ¯Æ°¤µ¤ì¤ë¥×¥í¥°¥é¥ÞÄêµÁ¤Î´Ø¿ô¤Ç¤¢¤ë¡£
-(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÏÄ̾ï¤Î¥×¥í¥»¥¹¤Î¥¹¥¿¥Ã¥¯¾å¤Çµ¯Æ°¤µ¤ì¤ë¡£
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÂåÂØ¥¹¥¿¥Ã¥¯ (alternate stack) ¤ò»ÈÍѤ¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë
-¤³¤È¤â¤Ç¤¤ë¡£ÂåÂØ¥¹¥¿¥Ã¥¯¤ò»ÈÍѤ¹¤ë¤è¤¦¤ËÀßÄꤹ¤ëÊýË¡¤È¡¢¤É¤Î¤è¤¦¤ÊºÝ¤Ë
-ÂåÂØ¥¹¥¿¥Ã¥¯¤¬Ìò¤ËΩ¤Ä¤«¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï
-.BR sigaltstack (2)
-¤ò»²¾È¤Î¤³¤È¡£
+プロセスは、 \fBsigaction\fP(2) や \fBsignal\fP(2) を使って、シグナルの処理方法を変更することができる
+(\fBsignal\fP(2) の方がシグナルハンドラを設定する際の移植性が低い; 詳細は \fBsignal\fP(2) を参照)。
+シグナルの配送時に起こる動作として プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行する、シグナルを無視する、
+\fIシグナルハンドラ (signal handler)\fP でシグナルを捕捉する。シグナルハンドラとは、シグナル配送時に
+自動的に起動されるプログラマ定義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック上で起動される。
+シグナルハンドラが代替スタック (alternate stack) を使用するように設定する
+こともできる。代替スタックを使用するように設定する方法と、どのような際に 代替スタックが役に立つかについての議論については
+\fBsigaltstack\fP(2) を参照のこと。
-.\"O The signal disposition is a per-process attribute:
-.\"O in a multithreaded application, the disposition of a
-.\"O particular signal is the same for all threads.
-¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥×¥í¥»¥¹Ã±°Ì¤Î°À¤Ç¤¢¤ë¡£
-¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¤¢¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï
-Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤ÇƱ¤¸¤Ç¤¢¤ë¡£
+シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーションでは、あるシグナルの処理方法は 全てのスレッドで同じである。
-.\"O A child created via
-.\"O .BR fork (2)
-.\"O inherits a copy of its parent's signal dispositions.
-.\"O During an
-.\"O .BR execve (2),
-.\"O the dispositions of handled signals are reset to the default;
-.\"O the dispositions of ignored signals are left unchanged.
-.BR fork (2)
-¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£
-.BR execve (2)
-¤Î´Ö¡¢¥Ï¥ó¥É¥é¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È
-¤µ¤ì¡¢Ìµ»ë¤È¤Ê¤Ã¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤ÏÊѹ¹¤µ¤ì¤º¤½¤Î¤Þ¤Þ¤È¤Ê¤ë¡£
-.\"O .SS Sending a Signal
-.SS ¥·¥°¥Ê¥ë¤ÎÁ÷¿®
-.\"O The following system calls and library functions allow
-.\"O the caller to send a signal:
-°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò»È¤Ã¤Æ¡¢
-¸Æ¤Ó½Ð¤·¼Ô¤Ï¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
-.TP 16
-.BR raise (3)
-.\"O Sends a signal to the calling thread.
-¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£
-.TP
-.BR kill (2)
-.\"O Sends a signal to a specified process,
-.\"O to all members of a specified process group,
-.\"O or to all processes on the system.
-»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ä¡¢»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¡¢
-¥·¥¹¥Æ¥à¤ÎÁ´¥×¥í¥»¥¹¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£
-.TP
-.BR killpg (2)
-.\"O Sends a signal to all of the members of a specified process group.
-»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÁ´¥á¥ó¥Ð¡¼¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£
-.TP
-.BR pthread_kill (3)
-.\"O Sends a signal to a specified POSIX thread in the same process as
-.\"O the caller.
-¸Æ¤Ó½Ð¤·¼Ô¤ÈƱ¤¸¥×¥í¥»¥¹Æâ¤Î»ØÄꤵ¤ì¤¿ POSIX ¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£
-.TP
-.BR tgkill (2)
-.\"O Sends a signal to a specified thread within a specific process.
-.\"O (This is the system call used to implement
-.\"O .BR pthread_kill (3).)
-»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹Æâ¤Î»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë
-(¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ
-.BR pthread_kill (3)
-¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë)¡£
-.TP
-.BR sigqueue (2)
-.\"O Sends a real-time signal with accompanying data to a specified process.
-»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤ËÉÕ°¥Ç¡¼¥¿¤È¤È¤â¤Ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£
-.\"O .SS Waiting for a Signal to be Caught
-.SS ¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Î¤òÂÔ¤Ä
-.\"O The following system calls suspend execution of the calling process
-.\"O or thread until a signal is caught
-.\"O (or an unhandled signal terminates the process):
-°Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç
-¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ä¥¹¥ì¥Ã¥É¤Î¼Â¹Ô¤òÃæÃÇ (suspend) ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë
-(¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤Ë¤è¤ê¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿
-¾ì¹ç¤Ë¤â¼Â¹Ô¤ÎÄä»ß¤Ï½ªÎ»¤¹¤ë)¡£
-.TP 16
-.BR pause (2)
-.\"O Suspends execution until any signal is caught.
-²¿¤«¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç¼Â¹Ô¤òÄä»ß¤¹¤ë¡£
-.TP
-.BR sigsuspend (2)
-.\"O Temporarily changes the signal mask (see below) and suspends
-.\"O execution until one of the unmasked signals is caught.
-°ì»þŪ¤Ë¥·¥°¥Ê¥ë¥Þ¥¹¥¯ (²¼µ»²¾È) ¤òÊѹ¹¤·¡¢
-¥Þ¥¹¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤Î¤¤¤º¤ì¤«¤¬Ê᪤µ¤ì¤ë¤Þ¤Ç
-¼Â¹Ô¤òÃæÃǤ¹¤ë¡£
-.\"O .SS Synchronously Accepting a Signal
-.SS ¥·¥°¥Ê¥ë¤ÎƱ´ü¼õ¿®
-.\"O Rather than asynchronously catching a signal via a signal handler,
-.\"O it is possible to synchronously accept the signal, that is,
-.\"O to block execution until the signal is delivered,
-.\"O at which point the kernel returns information about the
-.\"O signal to the caller.
-.\"O There are two general ways to do this:
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é·Ðͳ¤Ç¥·¥°¥Ê¥ë¤òÈóƱ´ü (asynchronously) ¤ÇÊ᪤¹¤ë°Ê³°¤Ë¤â¡¢
-¥·¥°¥Ê¥ë¤òƱ´ü (synchronously) ¤·¤Æ¼õ¤±ÉÕ¤±¤ë¤³¤È¤â¤Ç¤¤ë¡£
-Ʊ´ü¤·¤Æ¼õ¤±ÉÕ¤±¤ë¤È¤Ï¡¢¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¼Â¹Ô¤òÄä»ß (block)
-¤¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£¥·¥°¥Ê¥ë¤ò¼õ¤±ÉÕ¤±¤¿ºÝ¤Ë¡¢¥«¡¼¥Í¥ë¤Ï
-¤½¤Î¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò¸Æ¤Ó½Ð¤·¼Ô¤ËÊÖ¤¹¡£
-¤³¤ì¤ò¹Ô¤¦°ìÈÌŪ¤ÊÊýË¡¤¬Æó¤Ä¤¢¤ë¡£
+\fBfork\fP(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コピーを継承する。
+\fBexecve\fP(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルトにリセットされ、
+無視が設定されているシグナルの処理方法は変更されずそのままとなる。
+.SS シグナルの送信
+以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信することができる。
+.TP 16
+\fBraise\fP(3)
+呼び出したスレッドにシグナルを送る。
+.TP
+\fBkill\fP(2)
+指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プロセスにシグナルを送る。
+.TP
+\fBkillpg\fP(2)
+指定されたプロセスグループの全メンバーにシグナルを送る。
+.TP
+\fBpthread_kill\fP(3)
+呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。
+.TP
+\fBtgkill\fP(2)
+指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコールを使って \fBpthread_kill\fP(3) は実装されている)。
+.TP
+\fBsigqueue\fP(3)
+指定されたプロセスに付属データとともにリアルタイムシグナルを送る。
+.SS シグナルが捕捉されるのを待つ
+以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやスレッドの実行を中断 (suspend) することができる
+(ハンドラが設定されていないシグナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。
+.TP 16
+\fBpause\fP(2)
+何かシグナルが捕捉されるまで実行を停止する。
+.TP
+\fBsigsuspend\fP(2)
+一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいずれかが捕捉されるまで 実行を中断する。
+.SS シグナルの同期受信
+シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 シグナルを同期 (synchronously)
+して受け付けることもできる。 同期して受け付けるとは、シグナルが配送されるまで実行を停止 (block)
+するということである。シグナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返す。 これを行う一般的な方法が二つある。
.IP * 2
-.\"O .BR sigwaitinfo (2),
-.\"O .BR sigtimedwait (2),
-.\"O and
-.\"O .BR sigwait (3)
-.\"O suspend execution until one of the signals in a specified
-.\"O set is delivered.
-.\"O Each of these calls returns information about the delivered signal.
-.BR sigwaitinfo (2),
-.BR sigtimedwait (2),
-.BR sigwait (3)
-¤Ï¡¢»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤Î¥·¥°¥Ê¥ë¤Î°ì¤Ä¤¬ÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¼Â¹Ô¤òÃæÃǤ¹¤ë¡£
-¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä´Ø¿ô¤Ç¤â¡¢ÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤¬ÊÖ¤µ¤ì¤ë¡£
+\fBsigwaitinfo\fP(2), \fBsigtimedwait\fP(2), \fBsigwait\fP(3)
+は、指定されたシグナル集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数でも、配送されたシグナルに関する情報が返される。
.IP *
-.\"O .BR signalfd (2)
-.\"O returns a file descriptor that can be used to read information
-.\"O about signals that are delivered to the caller.
-.\"O Each
-.\"O .BR read (2)
-.\"O from this file descriptor blocks until one of the signals
-.\"O in the set specified in the
-.\"O .BR signalfd (2)
-.\"O call is delivered to the caller.
-.\"O The buffer returned by
-.\"O .BR read (2)
-.\"O contains a structure describing the signal.
-.BR signalfd (2)
-¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¦¤È¡¢¸Æ¤Ó½Ð¤·¸µ¤ËÇÛÁ÷¤µ¤ì¤¿
-¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤òÆɤ߽Ф¹¤³¤È¤¬¤Ç¤¤ë¡£
-¤³¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î
-.BR read (2)
-¤Ï¡¢
-.BR signalfd (2)
-¤Î¸Æ¤Ó½Ð¤·»þ¤Ë»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë½¸¹ç¤Î¥·¥°¥Ê¥ë¤Î°ì¤Ä¤¬¸Æ¤Ó½Ð¤·¸µ¤Ë
-ÇÛÁ÷¤µ¤ì¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£
-.BR read (2)
-¤¬ÊÖ¤¹¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¥·¥°¥Ê¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤ò³ÊǼ¤·¤¿¹½Â¤ÂΤ¬Æþ¤Ã¤Æ¤¤¤ë¡£
-.\"O .SS "Signal Mask and Pending Signals"
-.SS ¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤È½èÍýÂÔ¤Á¥·¥°¥Ê¥ë
-.\"O A signal may be
-.\"O .IR blocked ,
-.\"O which means that it will not be delivered until it is later unblocked.
-.\"O Between the time when it is generated and when it is delivered
-.\"O a signal is said to be
-.\"O .IR pending .
-¥·¥°¥Ê¥ë¤Ï
-.I "¥Ö¥í¥Ã¥¯ (block)"
-¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤È¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï
-¤½¤Î¸å¥Ö¥í¥Ã¥¯¤ò²ò½ü¤µ¤ì¤ë¤Þ¤ÇÇÛÁ÷¤µ¤ì¤Ê¤¯¤Ê¤ë¡£
-¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤Æ¤«¤éÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¤Î´Ö¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï
-.I "½èÍýÂÔ¤Á (pending)"
-¤Ç¤¢¤ë¤È¸Æ¤Ð¤ì¤ë¡£
+\fBsignalfd\fP(2) が返すファイルディスクリプタを使うと、呼び出し元に配送された シグナルに関する情報を読み出すことができる。
+このファイルディスクリプタからの \fBread\fP(2) は、 \fBsignalfd\fP(2)
+の呼び出し時に指定されたシグナル集合のシグナルの一つが呼び出し元に 配送されるまで停止 (block) する。 \fBread\fP(2)
+が返すバッファにはシグナルに関する情報を格納した構造体が入っている。
+.SS シグナルマスクと処理待ちシグナル
+シグナルは \fIブロック (block)\fP されることがある。ブロックされると、そのシグナルは その後ブロックを解除されるまで配送されなくなる。
+シグナルが生成されてから配送されるまでの間、そのシグナルは \fI処理待ち (pending)\fP であると呼ばれる。
-.\"O Each thread in a process has an independent
-.\"O .IR "signal mask" ,
-.\"O which indicates the set of signals that the thread is currently blocking.
-.\"O A thread can manipulate its signal mask using
-.\"O .BR pthread_sigmask (3).
-.\"O In a traditional single-threaded application,
-.\"O .BR sigprocmask (2)
-.\"O can be used to manipulate the signal mask.
-¥×¥í¥»¥¹Æâ¤Î³Æ¥¹¥ì¥Ã¥É¤Ï¡¢¤½¤ì¤¾¤ìÆÈΩ¤Ê
-.I "¥·¥°¥Ê¥ë¥Þ¥¹¥¯ (signal mask)"
-¤ò»ý¤Ä¡£¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤¬¸½ºß¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤ë
-¥·¥°¥Ê¥ë½¸¹ç¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£
-¥¹¥ì¥Ã¥É¤Ï¡¢
-.BR pthread_sigmask (3)
-¤ò»È¤Ã¤Æ¼«Ê¬¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÁàºî¤Ç¤¤ë¡£
-ÅÁÅýŪ¤Ê¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢
-.BR sigprocmask (2)
-¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÁàºî¤Ç¤¤ë¡£
+プロセス内の各スレッドは、それぞれ独立な \fIシグナルマスク (signal mask)\fP を持つ。シグナルマスクはそのスレッドが現在ブロックしている
+シグナル集合を示すものである。 スレッドは、 \fBpthread_sigmask\fP(3) を使って自分のシグナルマスクを操作できる。
+伝統的なシングルスレッドのアプリケーションでは、 \fBsigprocmask\fP(2) を使って、シグナルマスクを操作できる。
-.\"O A child created via
-.\"O .BR fork (2)
-.\"O inherits a copy of its parent's signal mask;
-.\"O the signal mask is preserved across
-.\"O .BR execve (2).
-.BR fork (2)
-·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢
-¿Æ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£
-.BR execve (2)
-¤ÎÁ°¸å¤Ç¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÏÊÝ»ý¤µ¤ì¤ë¡£
+\fBfork\fP(2) 経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを継承する。 \fBexecve\fP(2)
+の前後でシグナルマスクは保持される。
-.\"O A signal may be generated (and thus pending)
-.\"O for a process as a whole (e.g., when sent using
-.\"O .BR kill (2))
-.\"O or for a specific thread (e.g., certain signals,
-.\"O such as
-.\"O .B SIGSEGV
-.\"O and
-.\"O .BR SIGFPE ,
-.\"O generated as a
-.\"O consequence of executing a specific machine-language instruction
-.\"O are thread directed, as are signals targeted at a specific thread using
-.\"O .BR pthread_kill (3)).
-.\"O A process-directed signal may be delivered to any one of the
-.\"O threads that does not currently have the signal blocked.
-.\"O If more than one of the threads has the signal unblocked, then the
-.\"O kernel chooses an arbitrary thread to which to deliver the signal.
-À¸À®¤µ¤ì¤ë¥·¥°¥Ê¥ë (¤·¤¿¤¬¤Ã¤Æ½èÍýÂÔ¤Á¤È¤Ê¤ë¥·¥°¥Ê¥ë) ¤Ë¤Ï¡¢
-¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤ÈÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Æ¤¬¤¢¤ë¡£
-Î㤨¤Ð¡¢¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤Î¥·¥°¥Ê¥ë¤Ï
-.BR kill (2)
-¤ò»È¤Ã¤ÆÁ÷¿®¤µ¤ì¤ë¡£
-ÆÃÄê¤Î¥Þ¥·¥ó¸ì¤ÎÌ¿Îá¤Î¼Â¹Ô¤Î·ë²Ì¤È¤·¤ÆÀ¸À®¤µ¤ì¤ë¡¢
-.B SIGSEGV
-¤ä
-.B SIGFPE
-¤Ê¤É¤Î¥·¥°¥Ê¥ë¤Ï¡¢¥¹¥ì¥Ã¥É°¸¤Æ¤È¤Ê¤ë¡£
-¤Þ¤¿¡¢
-.BR pthread_kill (3)
-¤ò»È¤Ã¤ÆÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Æ¤ËÀ¸À®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤â
-¥¹¥ì¥Ã¥É°¸¤Æ¤È¤Ê¤ë¡£
-¥×¥í¥»¥¹°¸¤Æ¤Î¥·¥°¥Ê¥ë¤Ï¡¢¤½¤Î¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤¥¹¥ì¥Ã¥É¤Î¤¦¤Á
-¤¤¤º¤ì¤«¤Î°ì¤Ä¤ËÇÛÁ÷¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£¤½¤Î¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤
-¥¹¥ì¥Ã¥É¤¬Ê£¿ô¤¢¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ë¥¹¥ì¥Ã¥É¤Ï¥«¡¼¥Í¥ë¤¬
-̵ºî°Ù¤ËÁªÂò¤¹¤ë¡£
+生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛てと特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは
+\fBkill\fP(2) を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 \fBSIGSEGV\fP や \fBSIGFPE\fP
+などのシグナルは、スレッド宛てとなる。 また、 \fBpthread_kill\fP(3) を使って特定のスレッド宛てに生成されたシグナルも
+スレッド宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッドのうち
+いずれかの一つに配送することができる。そのシグナルをブロックしていない スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが
+無作為に選択する。
-.\"O A thread can obtain the set of signals that it currently has pending
-.\"O using
-.\"O .BR sigpending (2).
-.\"O This set will consist of the union of the set of pending
-.\"O process-directed signals and the set of signals pending for
-.\"O the calling thread.
-¥¹¥ì¥Ã¥É¤Ï¡¢
-.BR sigpending (2)
-¤ò»È¤Ã¤Æ¡¢¸½ºß½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
-¤³¤Î½¸¹ç¤Ï¡¢¥×¥í¥»¥¹°¸¤Æ¤Î½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤È
-¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É°¸¤Æ¤Î¥·¥°¥Ê¥ë¤ÎξÊý¤«¤é¹½À®¤µ¤ì¤ë¡£
+スレッドは、 \fBsigpending\fP(2) を使って、現在処理待ちのシグナル集合を取得することができる。
+この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッド宛てのシグナルの両方から構成される。
-.\"O A child created via
-.\"O .BR fork (2)
-.\"O initially has an empty pending signal set;
-.\"O the pending signal set is preserved across an
-.\"O .BR execve (2).
-.BR fork (2)
-·Ðͳ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ç¤Ï¡¢½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤Ï
-¶õ¤Î½¸¹ç¤Ç½é´ü²½¤µ¤ì¤ë¡£
-.BR execve (2)
-¤ÎÁ°¸å¤Ç¡¢½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤ÏÊÝ»ý¤µ¤ì¤ë¡£
-.\"O .SS "Standard Signals"
-.SS ɸ½à¥·¥°¥Ê¥ë
-.\"O Linux supports the standard signals listed below.
-.\"O Several signal numbers
-.\"O are architecture-dependent, as indicated in the "Value" column.
-.\"O (Where three values are given, the first one is usually valid for
-.\"O alpha and sparc,
-.\"O the middle one for ix86, ia64, ppc, s390, arm and sh,
-.\"O and the last one for mips.
-Linux ¤Ï°Ê²¼¤Ë¼¨¤¹É¸½à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤Æ¤¤¤ë¡£
-¥·¥°¥Ê¥ëÈÖ¹æ¤Î°ìÉô¤Ï¥¢¡¼¥¥Æ¥¯¥Á¥ã°Í¸¤Ç¤¢¤ê¡¢"ÃÍ" Íó¤Ë¼¨¤¹Ä̤ê¤Ç¤¢¤ë¡£
-(3¤Ä¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¤â¤Î¤Ï¡¢ 1¤ÄÌܤ¬ alpha ¤È sparc ¤ÇÄ̾ï͸ú¤ÊÃÍ¡¢
-¿¿¤óÃ椬 ix86, ia64, ppc, s390, arm, sh ¤Ç¤ÎÃÍ¡¢ºÇ¸å¤¬ mips ¤Ç¤ÎÃͤǤ¢¤ë¡£
-.\" parisc is a law unto itself
-.\"O A \- denotes that a signal is absent on the corresponding architecture.)
-\- ¤Ï¤½¤Î¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤ÆÂбþ¤¹¤ë¥·¥°¥Ê¥ë¤¬¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£)
+\fBfork\fP(2) 経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合で初期化される。 \fBexecve\fP(2)
+の前後で、処理待ちのシグナル集合は保持される。
+.SS 標準シグナル
+Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアー
+キテクチャ依存であり、"値" 欄に示す通りである。 (3つの値が書かれている
+ものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や
+他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。
+(parisc での値は記載されて\fIいない\fP。 parisc でのシグナル番号は
+カーネルソースを参照してほしい)。 \- はそのアーキテ
+クチャにおいて対応するシグナルがないことを示す。)
-.\"O First the signals described in the original POSIX.1-1990 standard.
-ºÇ½é¤Ë¡¢POSIX.1-1990 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£
+最初に、POSIX.1\-1990 に定義されているシグナルを示す。
.TS
l c c l
____
lB c c l.
-.\"O Signal Value Action Comment
-¥·¥°¥Ê¥ë ÃÍ Æ°ºî ¥³¥á¥ó¥È
-.\"O SIGHUP \01 Term Hangup detected on controlling terminal
-.\"O or death of controlling process
-SIGHUP \01 Term T{
-À©¸æüËö(controlling terminal)¤Î¥Ï¥ó¥°¥¢¥Ã¥×¸¡½Ð¡¢
-¤Þ¤¿¤ÏÀ©¸æ¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î»à
-T}
-.\"O SIGINT \02 Term Interrupt from keyboard
-.\"O SIGQUIT \03 Core Quit from keyboard
-.\"O SIGILL \04 Core Illegal Instruction
-.\"O SIGABRT \06 Core Abort signal from \fBabort\fP(3)
-.\"O SIGFPE \08 Core Floating point exception
-.\"O SIGKILL \09 Term Kill signal
-SIGINT \02 Term ¥¡¼¥Ü¡¼¥É¤«¤é¤Î³ä¤ê¹þ¤ß (Interrupt)
-SIGQUIT \03 Core ¥¡¼¥Ü¡¼¥É¤Ë¤è¤ëÃæ»ß (Quit)
-SIGILL \04 Core ÉÔÀµ¤ÊÌ¿Îá
-SIGABRT \06 Core \fBabort\fP(3) ¤«¤é¤ÎÃæÃÇ (Abort) ¥·¥°¥Ê¥ë
-SIGFPE \08 Core ÉâÆ°¾®¿ôÅÀÎã³°
-SIGKILL \09 Term Kill ¥·¥°¥Ê¥ë
-.\"O SIGSEGV 11 Core Invalid memory reference
-.\"O SIGPIPE 13 Term Broken pipe: write to pipe with no
-.\"O readers
-.\"O SIGALRM 14 Term Timer signal from \fBalarm\fP(2)
-.\"O SIGTERM 15 Term Termination signal
-SIGSEGV 11 Core ÉÔÀµ¤Ê¥á¥â¥ê»²¾È
-SIGPIPE 13 Term ¥Ñ¥¤¥×Ç˲õ: Æɤ߼ê¤Î̵¤¤¥Ñ¥¤¥×¤Ø¤Î½ñ¤½Ð¤·
-SIGALRM 14 Term \fBalarm\fP(2) ¤«¤é¤Î¥¿¥¤¥Þ¡¼¥·¥°¥Ê¥ë
-SIGTERM 15 Term ½ªÎ» (termination) ¥·¥°¥Ê¥ë
-.\"O SIGUSR1 30,10,16 Term User-defined signal 1
-.\"O SIGUSR2 31,12,17 Term User-defined signal 2
-.\"O SIGCHLD 20,17,18 Ign Child stopped or terminated
-.\"O SIGCONT 19,18,25 Cont Continue if stopped
-SIGUSR1 30,10,16 Term ¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 1
-SIGUSR2 31,12,17 Term ¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 2
-SIGCHLD 20,17,18 Ign »Ò¥×¥í¥»¥¹¤Î°ì»þÄä»ß (stop) ¤Þ¤¿¤Ï½ªÎ»
-SIGCONT 19,18,25 Cont °ì»þÄä»ß (stop) ¤«¤é¤ÎºÆ³«
-.\"O SIGSTOP 17,19,23 Stop Stop process
-.\"O SIGTSTP 18,20,24 Stop Stop typed at tty
-.\"O SIGTTIN 21,21,26 Stop tty input for background process
-.\"O SIGTTOU 22,22,27 Stop tty output for background process
-SIGSTOP 17,19,23 Stop ¥×¥í¥»¥¹¤Î°ì»þÄä»ß (stop)
-SIGTSTP 18,20,24 Stop üËö (tty) ¤è¤êÆþÎϤµ¤ì¤¿°ì»þÄä»ß (stop)
-SIGTTIN 21,21,26 Stop ¥Ð¥Ã¥¯¥°¥é¥ó¥É¥×¥í¥»¥¹¤Î tty ÆþÎÏ
-SIGTTOU 22,22,27 Stop ¥Ð¥Ã¥¯¥°¥é¥ó¥É¥×¥í¥»¥¹¤Î tty ½ÐÎÏ
+シグナル 値 動作 コメント
+SIGHUP \01 Term 制御端末(controlling terminal)のハングアップ検出、
+ または制御しているプロセスの死
+SIGINT \02 Term キーボードからの割り込み (Interrupt)
+SIGQUIT \03 Core キーボードによる中止 (Quit)
+SIGILL \04 Core 不正な命令
+SIGABRT \06 Core \fBabort\fP(3) からの中断 (Abort) シグナル
+SIGFPE \08 Core 浮動小数点例外
+SIGKILL \09 Term Kill シグナル
+SIGSEGV 11 Core 不正なメモリ参照
+SIGPIPE 13 Term パイプ破壊:
+ 読み手の無いパイプへの書き出し
+SIGALRM 14 Term \fBalarm\fP(2) からのタイマーシグナル
+SIGTERM 15 Term 終了 (termination) シグナル
+SIGUSR1 30,10,16 Term ユーザ定義シグナル 1
+SIGUSR2 31,12,17 Term ユーザ定義シグナル 2
+SIGCHLD 20,17,18 Ign 子プロセスの一時停止 (stop) または終了
+SIGCONT 19,18,25 Cont 一時停止 (stop) からの再開
+SIGSTOP 17,19,23 Stop プロセスの一時停止 (stop)
+SIGTSTP 18,20,24 Stop 端末 (tty) より入力された一時停止 (stop)
+SIGTTIN 21,21,26 Stop バックグランドプロセスの tty 入力
+SIGTTOU 22,22,27 Stop バックグランドプロセスの tty 出力
.TE
-.\"O The signals
-.\"O .B SIGKILL
-.\"O and
-.\"O .B SIGSTOP
-.\"O cannot be caught, blocked, or ignored.
-¥·¥°¥Ê¥ë
-.B SIGKILL
-¤È
-.B SIGSTOP
-¤Ï¥¥ã¥Ã¥Á¡¢¥Ö¥í¥Ã¥¯¡¢Ìµ»ë¤Ç¤¤Ê¤¤¡£
+シグナル \fBSIGKILL\fP と \fBSIGSTOP\fP はキャッチ、ブロック、無視できない。
-.\"O Next the signals not in the POSIX.1-1990 standard but described in
-.\"O SUSv2 and POSIX.1-2001.
-¼¡¤Ë¡¢ POSIX.1-1990 ɸ½à¤Ë¤Ï¤Ê¤¤¤¬¡¢ SUSv2 ¤È
-POSIX.1-2001 ¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£
+次に、 POSIX.1\-1990 標準にはないが、 SUSv2 と POSIX.1\-2001 に記述されているシグナルを示す。
.TS
l c c l
____
lB c c l.
-.\"O Signal Value Action Comment
-¥·¥°¥Ê¥ë ÃÍ Æ°ºî ¥³¥á¥ó¥È
-.\"O SIGBUS 10,7,10 Core Bus error (bad memory access)
-.\"O SIGPOLL Term Pollable event (Sys V).
-.\"O Synonym for \fBSIGIO\fP
-.\"O SIGPROF 27,27,29 Term Profiling timer expired
-SIGBUS 10,7,10 Core ¥Ð¥¹¥¨¥é¡¼ (ÉÔÀµ¤Ê¥á¥â¥ê¥¢¥¯¥»¥¹)
-SIGPOLL Term ¥Ý¡¼¥ê¥ó¥°²Äǽ¤Ê¥¤¥Ù¥ó¥È (Sys V)¡£
- \fBSIGIO\fP ¤ÈƱµÁ
-SIGPROF 27,27,29 Term profiling ¥¿¥¤¥Þ¤Î»þ´ÖÀÚ¤ì
-.\"O SIGSYS 12,31,12 Core Bad argument to routine (SVr4)
-.\"O SIGTRAP 5 Core Trace/breakpoint trap
-.\"O SIGURG 16,23,21 Ign Urgent condition on socket (4.2BSD)
-SIGSYS 12,31,12 Core ¥ë¡¼¥Á¥ó¤Ø¤Î°ú¤¿ô¤¬ÉÔÀµ (SVr4)
-SIGTRAP 5 Core ¥È¥ì¡¼¥¹/¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È ¥È¥é¥Ã¥×
-SIGURG 16,23,21 Ign T{
-¥½¥±¥Ã¥È¤Î¶ÛµÞ»öÂÖ (urgent condition) (4.2BSD)
-T}
-.\"O SIGVTALRM 26,26,28 Term Virtual alarm clock (4.2BSD)
-.\"O SIGXCPU 24,24,30 Core CPU time limit exceeded (4.2BSD)
-.\"O SIGXFSZ 25,25,31 Core File size limit exceeded (4.2BSD)
-SIGVTALRM 26,26,28 Term ²¾ÁÛ¥¢¥é¡¼¥à¥¯¥í¥Ã¥¯ (4.2BSD)
-SIGXCPU 24,24,30 Core CPU»þ´ÖÀ©¸ÂĶ²á (4.2BSD)
-SIGXFSZ 25,25,31 Core ¥Õ¥¡¥¤¥ë¥µ¥¤¥ºÀ©¸Â¤ÎĶ²á (4.2BSD)
+シグナル 値 動作 コメント
+SIGBUS 10,7,10 Core バスエラー (不正なメモリアクセス)
+SIGPOLL Term ポーリング可能なイベント (Sys V)。
+ \fBSIGIO\fP と同義
+SIGPROF 27,27,29 Term profiling タイマの時間切れ
+SIGSYS 12,31,12 Core ルーチンへの引き数が不正 (SVr4)
+SIGTRAP 5 Core トレース/ブレークポイント トラップ
+SIGURG 16,23,21 Ign ソケットの緊急事態 (urgent condition) (4.2BSD)
+SIGVTALRM 26,26,28 Term 仮想アラームクロック (4.2BSD)
+SIGXCPU 24,24,30 Core CPU時間制限超過 (4.2BSD)
+SIGXFSZ 25,25,31 Core ファイルサイズ制限の超過 (4.2BSD)
.TE
-.\"O Up to and including Linux 2.2, the default behavior for
-.\"O .BR SIGSYS ", " SIGXCPU ", " SIGXFSZ ", "
-.\"O and (on architectures other than SPARC and MIPS)
-.\"O .B SIGBUS
-.\"O was to terminate the process (without a core dump).
-.\"O (On some other UNIX systems the default action for
-.\"O .BR SIGXCPU " and " SIGXFSZ
-.\"O is to terminate the process without a core dump.)
-.\"O Linux 2.4 conforms to the POSIX.1-2001 requirements for these signals,
-.\"O terminating the process with a core dump.
-Linux 2.2 °ÊÁ°¤Ç¤Ï¡¢
-.BR SIGSYS ", " SIGXCPU ", " SIGXFSZ
-¤ª¤è¤Ó SPARC ¤È MIPS °Ê³°¤Î¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ç¤Î
-.B SIGBUS
-¤Î¥Ç¥Õ¥©¥ë¥È¤Î¿¶¤ëÉñ¤¤¤Ï (¥³¥¢¥À¥ó¥×½ÐÎϤʤ·¤Î) ¥×¥í¥»¥¹½ªÎ»¤Ç¤¢¤Ã¤¿¡£
-(¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ë¤â
-.BR SIGXCPU " ¤È " SIGXFSZ
-¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤¬¥³¥¢¥À¥ó¥×¤Ê¤·¤Î¥×¥í¥»¥¹½ªÎ»¤Î¤â¤Î¤¬¤¢¤ë¡£)
-Linux 2.4 ¤Ç¤Ï¡¢POSIX.1-2001 ¤Ç¤ÎÍ×µá»ÅÍͤ˽àµò¤·¤Æ¡¢
-¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ç¡¢¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¡¢¥³¥¢¥À¥ó¥×¤ò½ÐÎϤ¹¤ë
-¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
+Linux 2.2 以前では、 \fBSIGSYS\fP, \fBSIGXCPU\fP, \fBSIGXFSZ\fP および SPARC と MIPS
+以外のアーキテクチャでの \fBSIGBUS\fP のデフォルトの振る舞いは (コアダンプ出力なしの) プロセス終了であった。 (他の UNIX システムにも
+\fBSIGXCPU\fP と \fBSIGXFSZ\fP のデフォルトの動作がコアダンプなしのプロセス終了のものがある。) Linux 2.4
+では、POSIX.1\-2001 での要求仕様に準拠して、 これらのシグナルで、プロセスを終了させ、コアダンプを出力する ようになっている。
-.\"O Next various other signals.
-¼¡¤Ë¤½¤Î¾¤Î³Æ¼ï¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£
+次にその他の各種シグナルを示す。
.TS
l c c l
____
lB c c l.
-.\"O Signal Value Action Comment
-¥·¥°¥Ê¥ë ÃÍ Æ°ºî ¥³¥á¥ó¥È
-.\"O SIGIOT 6 Core IOT trap. A synonym for \fBSIGABRT\fP
-.\"O SIGEMT 7,\-,7 Term
-.\"O SIGSTKFLT \-,16,\- Term Stack fault on coprocessor (unused)
-.\"O SIGIO 23,29,22 Term I/O now possible (4.2BSD)
-.\"O SIGCLD \-,\-,18 Ign A synonym for \fBSIGCHLD\fP
-SIGIOT 6 Core IOT ¥È¥é¥Ã¥×¡£\fBSIGABRT\fP ¤ÈƱµÁ
+シグナル 値 動作 コメント
+SIGIOT 6 Core IOT トラップ。\fBSIGABRT\fP と同義
SIGEMT 7,\-,7 Term
-SIGSTKFLT \-,16,\- A T{
-¿ôÃͱ黻¥×¥í¥»¥Ã¥µ¤Ë¤ª¤±¤ë¥¹¥¿¥Ã¥¯¥Õ¥©¥ë¥È (̤»ÈÍÑ)
-T}
-SIGIO 23,29,22 Term Æþ½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿ (4.2BSD)
-SIGCLD \-,\-,18 Ign \fBSIGCHLD\fP ¤ÈƱµÁ
-.\"O SIGPWR 29,30,19 Term Power failure (System V)
-.\"O SIGINFO 29,\-,\- A synonym for \fBSIGPWR\fP
-.\"O SIGLOST \-,\-,\- Term File lock lost
-.\"O SIGWINCH 28,28,20 Ign Window resize signal (4.3BSD, Sun)
-.\"O SIGUNUSED \-,31,\- Core Synonymous with \fBSIGSYS\fP
-SIGPWR 29,30,19 Term ÅŸ»ÁÓ¼º (Power failure) (System V)
-SIGINFO 29,\-,\- \fBSIGPWR\fP ¤ÈƱµÁ
-SIGLOST \-,\-,\- Term ¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤¬¼º¤ï¤ì¤¿
-SIGWINCH 28,28,20 Ign T{
-¥¦¥£¥ó¥É¥¦ ¥ê¥µ¥¤¥º ¥·¥°¥Ê¥ë (4.3BSD, Sun)
-T}
-SIGUNUSED \-,31,\- Core \fBSIGSYS\fP ¤ÈƱµÁ
+SIGSTKFLT \-,16,\- A 数値演算プロセッサにおけるスタックフォルト (未使用)
+SIGIO 23,29,22 Term 入出力が可能になった (4.2BSD)
+SIGCLD \-,\-,18 Ign \fBSIGCHLD\fP と同義
+SIGPWR 29,30,19 Term 電源喪失 (Power failure) (System V)
+SIGINFO 29,\-,\- \fBSIGPWR\fP と同義
+SIGLOST \-,\-,\- Term ファイルロックが失われた (未使用)
+SIGWINCH 28,28,20 Ign ウィンドウ リサイズ シグナル (4.3BSD, Sun)
+SIGUNUSED \-,31,\- Core \fBSIGSYS\fP と同義
.TE
-.\"O (Signal 29 is
-.\"O .B SIGINFO
-.\"O /
-.\"O .B SIGPWR
-.\"O on an alpha but
-.\"O .B SIGLOST
-.\"O on a sparc.)
-(¥·¥°¥Ê¥ë 29 ¤Ï alpha ¤Ç¤Ï
-.B SIGINFO
-/
-.B SIGPWR
-¤À¤¬¡¢sparc ¤Ç¤Ï
-.B SIGLOST
-¤Ç¤¢¤ë¡£)
+(シグナル 29 は alpha では \fBSIGINFO\fP / \fBSIGPWR\fP だが、sparc では \fBSIGLOST\fP である。)
-.\"O .B SIGEMT
-.\"O is not specified in POSIX.1-2001, but nevertheless appears
-.\"O on most other UNIX systems,
-.\"O where its default action is typically to terminate
-.\"O the process with a core dump.
-.B SIGEMT
-¤Ï POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢
-¤½¤Î¾¤Î¿¤¯¤Î UNIX ¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£
-¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï¿¤¯¤Î¾ì¹ç¡¢¥³¥¢¥À¥ó¥×½ÐÎϤòȼ¤¦¥×¥í¥»¥¹¤Î½ªÎ»¤Ç¤¢¤ë¡£
+\fBSIGEMT\fP は POSIX.1\-2001 に規定されていないが、 その他の多くの UNIX システムに存在する。
+デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了である。
-.\"O .B SIGPWR
-.\"O (which is not specified in POSIX.1-2001) is typically ignored
-.\"O by default on those other UNIX systems where it appears.
-.B SIGPWR
-¤Ï (POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬) ¤³¤Î¥·¥°¥Ê¥ë¤¬Â¸ºß¤¹¤ë
-¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¿¤¯¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ï̵»ë¤Ç¤¢¤ë¡£
+\fBSIGPWR\fP は (POSIX.1\-2001 に規定されていないが) このシグナルが存在する 他の UNIX
+システムでは多くの場合、デフォルト動作は無視である。
-.\"O .B SIGIO
-.\"O (which is not specified in POSIX.1-2001) is ignored by default
-.\"O on several other UNIX systems.
-.B SIGIO
-¤Ï (POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬) ¤¤¤¯¤Ä¤«¤Î¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï
-¥Ç¥Õ¥©¥ë¥ÈÆ°ºî¤Ï̵»ë¤Ç¤¢¤ë¡£
+\fBSIGIO\fP は (POSIX.1\-2001 に規定されていないが) いくつかの他の UNIX システムでは デフォルト動作は無視である。
-.\"O Where defined,
-.\"O .B SIGUNUSED
-.\"O is synonymous with
-.\"O .\" parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
-.\"O .B SIGSYS
-.\"O on most architectures.
-.B SIGUNUSED
-¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¤Û¤È¤ó¤É¤Î¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ç
-.B SIGSYS
-¤ÎƱµÁ¸ì¤È¤Ê¤Ã¤Æ¤¤¤ë¡£
.\" parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
-.\"O .SS "Real-time Signals"
-.SS ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë
-.\"O Linux supports real-time signals as originally defined in the POSIX.1b
-.\"O real-time extensions (and now included in POSIX.1-2001).
-Linux ¤Ï¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£
-¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ï¸µ¡¹ POSIX.1b ¤Î¥ê¥¢¥ë¥¿¥¤¥à³ÈÄ¥¤ÇÄêµÁ¤µ¤ì¤Æ
-¤¤¤ë¤â¤Î¤Ç¤¢¤ê¡¢¸½ºß¤Ç¤Ï POSIX.1-2001 ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£
-.\"O The range of supported real-time signals is defined by the macros
-.\"O .B SIGRTMIN
-.\"O and
-.\"O .BR SIGRTMAX .
-.\"O POSIX.1-2001 requires that an implementation support at least
-.\"O .B _POSIX_RTSIG_MAX
-.\"O (8) real-time signals.
-Âбþ¤·¤Æ¤¤¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÈϰϤϡ¢¥Þ¥¯¥í
-.B SIGRTMIN
-¤È
-.B SIGRTMAX
-¤ÇÄêµÁ¤µ¤ì¤ë¡£
-POSIX.1-2001 ¤Ç¤Ï¡¢¾¯¤Ê¤¯¤È¤â
-.B _POSIX_RTSIG_MAX
-(8) ¸Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤¿¼ÂÁõ¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¡£
+\fBSIGUNUSED\fP が定義されている場合には、ほとんどのアーキテクチャで \fBSIGSYS\fP の同義語となっている。
+.SS リアルタイムシグナル
+Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 POSIX.1b のリアルタイム拡張で定義されて
+いるものであり、現在では POSIX.1\-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マクロ \fBSIGRTMIN\fP と
+\fBSIGRTMAX\fP で定義される。 POSIX.1\-2001 では、少なくとも \fB_POSIX_RTSIG_MAX\fP (8)
+個のリアルタイムシグナルに対応した実装が要求されている。
.PP
-.\"O The Linux kernel supports a range of 32 different real-time
-.\"O signals, numbered 33 to 64.
-.\"O However, the glibc POSIX threads implementation internally uses
-.\"O two (for NPTL) or three (for LinuxThreads) real-time signals
-.\"O (see
-.\"O .BR pthreads (7)),
-.\"O and adjusts the value of
-.\"O .B SIGRTMIN
-.\"O suitably (to 34 or 35).
-Linux ¤Ï¡¢32 ¸Ä¤Î°Û¤Ê¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤Æ¤ª¤ê¡¢
-¤½¤ÎÈÖ¹æ¤Ï 33 ¤«¤é 64 ¤Ç¤¢¤ë¡£
-¤·¤«¤·¤Ê¤¬¤é¡¢glibc ¤Î POSIX ¥¹¥ì¥Ã¥É¼ÂÁõ¤Ï¡¢
-ÆâÉô¤Ç 2¸Ä (NPTL ¤Î¾ì¹ç) ¤« 3¸Ä (LinuxThreads ¤Î¾ì¹ç) ¤Î
-¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò»ÈÍѤ·¤Æ¤ª¤ê
-.RB ( pthreads (7)
-»²¾È)¡¢
-.B SIGRTMIN
-¤ÎÃͤòŬÀÚ¤Ë (34 ¤« 35 ¤Ë) Ä´À°¤¹¤ë¡£
-.\"O Because the range of available real-time signals varies according
-.\"O to the glibc threading implementation (and this variation can occur
-.\"O at run time according to the available kernel and glibc),
-.\"O and indeed the range of real-time signals varies across UNIX systems,
-.\"O programs should
-.\"O .IR "never refer to real-time signals using hard-coded numbers" ,
-.\"O but instead should always refer to real-time signals using the notation
-.\"O .BR SIGRTMIN +n,
-.\"O and include suitable (run-time) checks that
-.\"O .BR SIGRTMIN +n
-.\"O does not exceed
-.\"O .BR SIGRTMAX .
-ÍøÍѲÄǽ¤Ê¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÈÏ°Ï¤Ï glibc ¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¤Ë¤è¤ê
-°Û¤Ê¤ë¤· (»ÈÍѤ¹¤ë¥«¡¼¥Í¥ë¤È glibc ¤Ë¤è¤ê¼Â¹Ô»þ¤Ë¤âÊѲ½¤¹¤ë)¡¢
-UNIX ¥·¥¹¥Æ¥à¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤â°Û¤Ê¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢
-¥×¥í¥°¥é¥à¤Ç¤Ï¡Ö¥Ï¡¼¥É¥³¡¼¥Ç¥£¥ó¥°¤·¤¿¿ô»ú¤ò»È¤Ã¤Æ¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î
-»²¾È¤Ï·è¤·¤Æ¤¹¤Ù¤¤Ç¤Ï¤Ê¤¯¡×¡¢Âå¤ï¤ê¤Ë
-.BR SIGRTMIN +n
-¤Î·Á¤Ç»²¾È¤¹¤Ù¤¤Ç¤¢¤ë¡£¤Þ¤¿¡¢
-.BR SIGRTMIN +n
-¤¬
-.B SIGRTMAX
-¤òĶ¤¨¤Æ¤¤¤Ê¤¤¤«¤Î¥Á¥§¥Ã¥¯¤ò (¼Â¹Ô»þ¤Ë) ŬÀڤ˹Ԥ¦¤Ù¤¤Ç¤¢¤ë¡£
+Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 から 64 である。 しかしながら、glibc の POSIX
+スレッド実装は、 内部で 2個 (NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用しており
+(\fBpthreads\fP(7) 参照)、 \fBSIGRTMIN\fP の値を適切に (34 か 35 に) 調整する。
+利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なるし (使用するカーネルと glibc により実行時にも変化する)、
+UNIX システムの種類によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を使ってのリアルタイムシグナルの
+参照は決してすべきではなく」、代わりに \fBSIGRTMIN\fP+n の形で参照すべきである。また、 \fBSIGRTMIN\fP+n が
+\fBSIGRTMAX\fP を超えていないかのチェックを (実行時に) 適切に行うべきである。
.PP
-.\"O Unlike standard signals, real-time signals have no predefined meanings:
-.\"O the entire set of real-time signals can be used for application-defined
-.\"O purposes.
-.\"O (Note, however, that the LinuxThreads implementation uses the first
-.\"O three real-time signals.)
-ɸ½à¥·¥°¥Ê¥ë¤È°Û¤Ê¤ê¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ë¤Ï
-»öÁ°¤ËÄêµÁ¤µ¤ì¤¿°ÕÌ£¤Ï¤Ê¤¤¡£
-¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÁ´Éô¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÄêµÁ¤·¤¿ÍÑÅӤ˻Ȥ¨¤ë¡£
-(⤷¡¢LinuxThreads ¼ÂÁõ¤Ç¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤Î¤¦¤Á
-ºÇ½é¤Î 3¤Ä¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È)
+標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。
.PP
-.\"O The default action for an unhandled real-time signal is to terminate the
-.\"O receiving process.
-¥Ï¥ó¥É¥ê¥ó¥°¤·¤Ê¤¤¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï
-¼õ¿®¤·¤¿¥×¥í¥»¥¹¤Î½ªÎ»¤Ç¤¢¤ë¡£
+ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの終了である。
.PP
-.\"O Real-time signals are distinguished by the following:
-¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ï°Ê²¼¤ÎÆÃħ¤¬¤¢¤ë:
+リアルタイムシグナルは以下の特徴がある:
.IP 1. 4
-.\"O Multiple instances of real-time signals can be queued.
-.\"O By contrast, if multiple instances of a standard signal are delivered
-.\"O while that signal is currently blocked, then only one instance is queued.
-¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÏÊ£¿ô¤Î¼ÂÂΤò¥¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤¤ë¡£
-°ìÊý¡¢É¸½à¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢¤½¤Î¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë´Ö¤Ë
-Ʊ¤¸¥·¥°¥Ê¥ë¤ÎÊ£¿ô¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤¬ÇÛÁ÷¤µ¤ì¤Æ¤â¡¢
-1 ¤Ä¤À¤±¤¬¥¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¡£
+リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグナルの場合、そのシグナルがブロックされている間に
+同じシグナルの複数のインスタンスが配送されても、 1 つだけがキューに入れられる。
.IP 2. 4
-.\"O If the signal is sent using
-.\"O .BR sigqueue (2),
-.\"O an accompanying value (either an integer or a pointer) can be sent
-.\"O with the signal.
-¥·¥°¥Ê¥ë¤¬
-.BR sigqueue (2)
-¤òÍѤ¤¤ÆÁ÷¿®¤µ¤ì¤¿¾ì¹ç¡¢
-ÉÕ°¥Ç¡¼¥¿ (À°¿ô¤«¥Ý¥¤¥ó¥¿) ¤ò¥·¥°¥Ê¥ë¤È¶¦¤ËÁ÷¿®¤Ç¤¤ë¡£
-.\"O If the receiving process establishes a handler for this signal using the
-.\"O .B SA_SIGINFO
-.\"O flag to
-.\"O .BR sigaction (2)
-.\"O then it can obtain this data via the
-.\"O .I si_value
-.\"O field of the
-.\"O .I siginfo_t
-.\"O structure passed as the second argument to the handler.
-¼õ¿®Â¦¥×¥í¥»¥¹¤¬
-.BR sigaction (2)
-¤Ë
-.B SA_SIGINFO
-¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤷ¤¿¾ì¹ç¡¢
-¤³¤Î¥Ç¡¼¥¿¤Ï
-.I siginfo_t
-¹½Â¤ÂΤÎ
-.I si_value
-¥Õ¥£¡¼¥ë¥É·Ðͳ¤Ç¥Ï¥ó¥É¥é¤ÎÂè 2 °ú¤¿ô¤È¤·¤ÆÅϤµ¤ì¡¢
-ÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
-.\"O Furthermore, the
-.\"O .I si_pid
-.\"O and
-.\"O .I si_uid
-.\"O fields of this structure can be used to obtain the PID
-.\"O and real user ID of the process sending the signal.
-¤µ¤é¤Ë¡¢¤³¤Î¹½Â¤ÂΤÎ
-.I si_pid
-¤È
-.I si_uid
-¥Õ¥£¡¼¥ë¥É¤Ç¥·¥°¥Ê¥ë¤òÁ÷¿®¤·¤¿¥×¥í¥»¥¹¤Î PID ¤È¼Â¥æ¡¼¥¶ ID ¤ò
-ÆÀ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
+シグナルが \fBsigqueue\fP(3) を用いて送信された場合、 付属データ (整数かポインタ) をシグナルと共に送信できる。 受信側プロセスが
+\fBsigaction\fP(2) に \fBSA_SIGINFO\fP フラグを指定してシグナルハンドラを設定した場合、 このデータは
+\fIsiginfo_t\fP 構造体の \fIsi_value\fP フィールド経由でハンドラの第 2 引き数として渡され、 利用することができる。
+さらに、この構造体の \fIsi_pid\fP と \fIsi_uid\fP フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を
+得ることができる。
.IP 3. 4
-.\"O Real-time signals are delivered in a guaranteed order.
-.\"O Multiple real-time signals of the same type are delivered in the order
-.\"O they were sent.
-.\"O If different real-time signals are sent to a process, they are delivered
-.\"O starting with the lowest-numbered signal.
-.\"O (I.e., low-numbered signals have highest priority.)
-.\"O By contrast, if multiple standard signals are pending for a process,
-.\"O the order in which they are delivered is unspecified.
-¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ç¤ÏÇÛÁ÷¤µ¤ì¤ë½ç½ø¤¬Êݾڤµ¤ì¤ë¡£
-Ʊ¤¸¥¿¥¤¥×¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÏÁ÷¿®¤µ¤ì¤¿½çÈÖ¤ËÅþÃ夹¤ë¡£
-°Û¤Ê¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤¬°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÁ÷¿®¤µ¤ì¤¿¾ì¹ç¡¢
-ÈÖ¹æ¤Î¾®¤µ¤¤¥·¥°¥Ê¥ë¤«¤éÀè¤ËÅþÃ夹¤ë¡£
-(¤Ä¤Þ¤ê¾®¤µ¤¤ÈÖ¹æ¤Î¥·¥°¥Ê¥ë¤¬¹â¤¤Í¥Àè½ç°Ì¤ò»ý¤Ä¡£)
-ÂоÈŪ¤Ë¡¢°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÂФ·¤ÆÊ£¿ô¤Îɸ½à¥·¥°¥Ê¥ë¤¬½èÍýÂÔ¤Á¤È¤Ê¤Ã¤¿¾ì¹ç¡¢
-¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤ë½ç½ø¤ÏÉÔÄê¤Ç¤¢¤ë¡£
+リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイムシグナルは送信された順番に到着する。
+異なるリアルタイムシグナルが一つのプロセスに送信された場合、 番号の小さいシグナルから先に到着する。
+(つまり小さい番号のシグナルが高い優先順位を持つ。) 対照的に、一つのプロセスに対して複数の標準シグナルが処理待ちとなった場合、
+これらのシグナルが配送される順序は不定である。
.PP
-.\"O If both standard and real-time signals are pending for a process,
-.\"O POSIX leaves it unspecified which is delivered first.
-.\"O Linux, like many other implementations, gives priority
-.\"O to standard signals in this case.
-°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æɸ½à¥·¥°¥Ê¥ë¤È¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎξÊý¤¬
-½èÍýÂÔ¤Á¤Î¾ì¹ç¡¢POSIX ¤Ï¤É¤Á¤é¤¬Àè¤ËÇÛÁ÷¤µ¤ì¤ë¤«¤òµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£
-Linux ¤Ç¤Ï¡¢Â¾¤Î¿¤¯¤Î¼ÂÁõ¤ÈƱÍÍ¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï
-ɸ½à¥·¥°¥Ê¥ë¤¬Í¥À褵¤ì¤ë¡£
+一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場合、POSIX はどちらが先に配送されるかを規定していない。 Linux
+では、他の多くの実装と同様、このような場合には 標準シグナルが優先される。
.PP
-.\"O According to POSIX, an implementation should permit at least
-.\"O .B _POSIX_SIGQUEUE_MAX
-.\"O (32) real-time signals to be queued to
-.\"O a process.
-POSIX ¤Ë¤è¤ì¤Ð¡¢1 ¥×¥í¥»¥¹Ëè¤ËºÇÄã
-.B _POSIX_SIGQUEUE_MAX
-(32) ¸Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò¥¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¤Ù¤¤È¤·¤Æ¤¤¤ë¡£
-.\"O However, Linux does things differently.
-.\"O In kernels up to and including 2.6.7, Linux imposes
-.\"O a system-wide limit on the number of queued real-time signals
-.\"O for all processes.
-¤·¤«¤·¡¢ Linux ¤Ç¤Ï°ã¤Ã¤¿¼ÂÁõ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¥«¡¼¥Í¥ë 2.6.7 ¤Þ¤Ç¤Ï
-(2.6.7 ¤ò´Þ¤à)¡¢Á´¥×¥í¥»¥¹¤Ç¥¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë
-¤Î¿ô¤Î¹ç·×¤Ë¤Ä¤¤¤Æ¥·¥¹¥Æ¥àÁ´ÂΤǤÎÀ©¸Â¤¬¤¢¤ë¡£
-.\"O This limit can be viewed and (with privilege) changed via the
-.\"O .I /proc/sys/kernel/rtsig-max
-.\"O file.
-.\"O A related file,
-.\"O .IR /proc/sys/kernel/rtsig-nr ,
-.\"O can be used to find out how many real-time signals are currently queued.
-¤³¤ÎÀ©¸Â¤Ï
-.I /proc/sys/kernel/rtsig-max
-¥Õ¥¡¥¤¥ë¤Ç¸«¤ë¤³¤È¤¬¤Ç¤¡¢ (¸¢¸Â¤¬¤¢¤ì¤Ð) Êѹ¹¤â¤Ç¤¤ë¡£
-´Ø·¸¤¹¤ë¥Õ¥¡¥¤¥ë¤È¤·¤Æ¡¢
-.I /proc/sys/kernel/rtsig-nr
-¤ò¸«¤ë¤³¤È¤Ç¡¢¤¤¤¯¤Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤¬¸½ºß¥¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¤«¤ò
-ÃΤ뤳¤È¤¬¤Ç¤¤ë¡£
-.\"O In Linux 2.6.8, these
-.\"O .I /proc
-.\"O interfaces were replaced by the
-.\"O .B RLIMIT_SIGPENDING
-.\"O resource limit, which specifies a per-user limit for queued
-.\"O signals; see
-.\"O .BR setrlimit (2)
-.\"O for further details.
-Linux 2.6.8 ¤Ç¡¢¤³¤ì¤é¤Î
-.I /proc
-·Ðͳ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢
-.B RLIMIT_SIGPENDING
-¥ê¥½¡¼¥¹À©¸Â¤ËÃÖ¤´¹¤¨¤é¤ì¤¿¡£
-¤³¤ì¤Ï¡¢¥¥å¡¼¤ËÆþ¤ë¥·¥°¥Ê¥ë¿ô¤Ë´Ø¤·¤Æ¥æ¡¼¥¶Ã±°Ì¤Ë
-¾å¸Â¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£
-¾Ü¤·¤¯¤Ï
-.BR setrlimit (2)
-¤ò»²¾È¡£
-.\"O .SS "Async-signal-safe functions"
-.SS "ÈóƱ´ü¥·¥°¥Ê¥ë¤Ç°ÂÁ´¤Ê´Ø¿ô (async-signal-safe functions)"
+POSIX によれば、1 プロセス毎に最低 \fB_POSIX_SIGQUEUE_MAX\fP (32)
+個のリアルタイムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装になっている。カーネル 2.6.7 までは
+(2.6.7 を含む)、全プロセスでキューに入っているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 この制限は
+\fI/proc/sys/kernel/rtsig\-max\fP ファイルで見ることができ、 (権限があれば) 変更もできる。 関係するファイルとして、
+\fI/proc/sys/kernel/rtsig\-nr\fP を見ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることができる。
+Linux 2.6.8 で、これらの \fI/proc\fP 経由のインターフェースは、 \fBRLIMIT_SIGPENDING\fP
+リソース制限に置き換えられた。 これは、キューに入るシグナル数に関してユーザ単位に 上限を指定するものである。 詳しくは \fBsetrlimit\fP(2)
+を参照。
+.SS "非同期シグナルで安全な関数 (async\-signal\-safe functions)"
.PP
-.\"O A signal handler function must be very careful,
-.\"O since processing elsewhere may be interrupted
-.\"O at some arbitrary point in the execution of the program.
-.\"O POSIX has the concept of "safe function".
-.\"O If a signal interrupts the execution of an unsafe function, and
-.\"O .I handler
-.\"O calls an unsafe function, then the behavior of the program is undefined.
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Ë¤ÏÈó¾ï¤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-¾¤Î¾ì½ê¤Î½èÍý¤Ï¥×¥í¥°¥é¥à¼Â¹Ô¤ÎǤ°Õ¤Î²Õ½ê¤ÇÃæÃǤµ¤ì¤ë²ÄǽÀ¤¬¤¢¤ë¤¿¤á¤Ç¤¢¤ë¡£
-POSIX ¤Ë¤Ï¡Ö°ÂÁ´¤Ê´Ø¿ô (safe function)¡×¤È¤¤¤¦³µÇ°¤¬¤¢¤ë¡£
-¥·¥°¥Ê¥ë¤¬°ÂÁ´¤Ç¤Ê¤¤´Ø¿ô¤Î¼Â¹Ô¤òÃæÃǤ·¡¢¤«¤Ä
-.I handler
-¤¬°ÂÁ´¤Ç¤Ê¤¤´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢¥×¥í¥°¥é¥à¤ÎµóÆ°¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
+シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログラム実行の任意の箇所で中断される可能性があるためである。 POSIX
+には「安全な関数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断し、かつ \fIhandler\fP
+が安全でない関数を呼び出した場合、プログラムの挙動は未定義である。
-.\"O POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)
-.\"O requires an implementation to guarantee that the following
-.\"O functions can be safely called inside a signal handler:
-POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (Àµ¸íɽ) 2 ¤È¤â¸À¤¦) ¤Ç¤Ï¡¢
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÆâ¤Ç¤Î°ÂÁ´¤Ê¸Æ¤Ó½Ð¤·¤òÊݾڤ¹¤ë¤³¤È¤¬É¬¿Ü¤Î´Ø¿ô¤È¤·¤Æ
-°Ê²¼¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
+POSIX.1\-2004 (POSIX.1\-2001 Technical Corrigendum (正誤表) 2 とも言う) では、
+シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規定されている。
.in +4
.nf
.fi
.in
.PP
-.\"O POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()
-.\"O from the above list, and adds the following functions:
-POSIX.1-2008 ¤Ç¤Ï¡¢¾åµ¤Î¥ê¥¹¥È¤Î¤¦¤Á fpathconf(), pathconf(), sysconf()
-¤¬ºï½ü¤µ¤ì¡¢°Ê²¼¤Î´Ø¿ô¤¬Äɲ䵤줿¡£
+POSIX.1\-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()
+が削除され、以下の関数が追加された。
.PP
.in +4n
.nf
utimes()
.fi
.in
-.\"O .SS Interruption of System Calls and Library Functions by Signal Handlers
-.SS ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ø¤Î³ä¤ê¹þ¤ß
-.\"O If a signal handler is invoked while a system call or library
-.\"O function call is blocked, then either:
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê¤¬Ää»ß (block) ¤·¤Æ¤¤¤ë´Ö¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬
-µ¯Æ°¤µ¤ì¤ë¤È¡¢°Ê²¼¤Î¤É¤Á¤é¤«¤È¤Ê¤ë¡£
+.SS シグナルハンドラによるシステムコールやライブラリ関数への割り込み
+システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動されると、以下のどちらかとなる。
.IP * 2
-.\"O the call is automatically restarted after the signal handler returns; or
-¥·¥°¥Ê¥ë¤¬Ê֤俸塢¸Æ¤Ó½Ð¤·¤Ï¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤µ¤ì¤ë¡£
+シグナルが返った後、呼び出しは自動的に再スタートされる。
.IP *
-.\"O the call fails with the error
-.\"O .BR EINTR .
-¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼
-.B EINTR
-¤Ç¼ºÇÔ¤¹¤ë¡£
+呼び出しはエラー \fBEINTR\fP で失敗する。
.PP
-.\"O Which of these two behaviors occurs depends on the interface and
-.\"O whether or not the signal handler was established using the
-.\"O .BR SA_RESTART
-.\"O flag (see
-.\"O .BR sigaction (2)).
-.\"O The details vary across UNIX systems;
-.\"O below, the details for Linux.
-¤³¤ì¤é¤ÎÆó¤Ä¤ÎµóÆ°¤Î¤¦¤Á¤É¤Á¤é¤¬µ¯¤³¤ë¤«¤Ï¡¢¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë¤è¤ê°Í¸¤·¡¢
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬
-.B SA_RESTART
-¥Õ¥é¥°
-.RB ( sigaction (2)
-»²¾È) ¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤Æ¤¤¤¿¤«¤Ë¤â°Í¸¤¹¤ë¡£
-¾ÜºÙ¤Ï UNIX ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£
-Linux ¤Ë¤ª¤±¤ë¾ÜºÙ¤ò°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£
+これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シグナルハンドラが \fBSA_RESTART\fP フラグ
+(\fBsigaction\fP(2) 参照) を使って設定されていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux
+における詳細を以下で説明する。
-.\"O If a blocked call to one of the following interfaces is interrupted
-.\"O by a signal handler, then the call will be automatically restarted
-.\"O after the signal handler returns if the
-.\"O .BR SA_RESTART
-.\"O flag was used; otherwise the call will fail with the error
-.\"O .BR EINTR :
-.\"O .\" The following system calls use ERESTARTSYS,
-.\"O .\" so that they are restartable
-°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î¤¤¤º¤ì¤«¤Î¸Æ¤Ó½Ð¤·¤¬Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢
-.B SA_RESTART
-¥Õ¥é¥°¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ì¤Ð¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Ê֤俸å¤Ë
-¤½¤Î¸Æ¤Ó½Ð¤·¤Ï¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£
-¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¤½¤Î¸Æ¤Ó½Ð¤·¤Ï¥¨¥é¡¼
-.B EINTR
-¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£
-.\" °Ê²¼¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï ERESTARTSYS ¤ò»È¤Ã¤Æ¤¤¤ë¡£
-.\" ¤½¤Î¤¿¤á¡¢¤³¤ì¤é¤ÏºÆ¥¹¥¿¡¼¥È¤¬²Äǽ¤Ç¤¢¤ë¡£
+.\" The following system calls use ERESTARTSYS,
+.\" so that they are restartable
+以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラにより割り込まれた場合、 \fBSA_RESTART\fP
+フラグが使用されていれば、シグナルハンドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外の場合は、その呼び出しはエラー
+\fBEINTR\fP で失敗することになる。
.RS 4
.IP * 2
-.\"O .BR read (2),
-.\"O .BR readv (2),
-.\"O .BR write (2),
-.\"O .BR writev (2),
-.\"O and
-.\"O .BR ioctl (2)
-.\"O calls on "slow" devices.
-.\"O A "slow" device is one where the I/O call may block for an
-.\"O indefinite time, for example, a terminal, pipe, or socket.
-.\"O (A disk is not a slow device according to this definition.)
-.\"O If an I/O call on a slow device has already transferred some
-.\"O data by the time it is interrupted by a signal handler,
-.\"O then the call will return a success status
-.\"O (normally, the number of bytes transferred).
-.BR read (2),
-.BR readv (2),
-.BR write (2),
-.BR writev (2),
-.BR ioctl (2)
-¤Î¡ÖÃÙ¤¤ (slow)¡×¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë¸Æ¤Ó½Ð¤·¡£
-¤³¤³¤Ç¤¤¤¦¡ÖÃÙ¤¤¡×¥Ç¥Ð¥¤¥¹¤È¤Ï¡¢I/O ¸Æ¤Ó½Ð¤·¤¬Ìµ´ü¸Â¤ËÄä»ß (block) ¤¹¤ë
-²ÄǽÀ¤Î¤¢¤ë¥Ç¥Ð¥¤¥¹¤Î¤³¤È¤Ç¡¢Îã¤È¤·¤Æ¤ÏüËö¡¢¥Ñ¥¤¥×¡¢¥½¥±¥Ã¥È¤¬¤¢¤ë
-(¤³¤ÎÄêµÁ¤Ç¤Ï¡¢¥Ç¥£¥¹¥¯¤ÏÃÙ¤¤¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤Ê¤¤)¡£
-ÃÙ¤¤¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë I/O ¸Æ¤Ó½Ð¤·¤¬¡¢
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿»þÅÀ¤Þ¤Ç¤Ë²¿¤é¤«¤Î¥Ç¡¼¥¿¤ò
-¤¹¤Ç¤ËžÁ÷¤·¤Æ¤¤¤ì¤Ð¡¢¸Æ¤Ó½Ð¤·¤ÏÀ®¸ù¥¹¥Æ¡¼¥¿¥¹
-(Ä̾ï¤Ï¡¢Å¾Á÷¤µ¤ì¤¿¥Ð¥¤¥È¿ô) ¤òÊÖ¤¹¤³¤È¤À¤í¤¦¡£
+\fBread\fP(2), \fBreadv\fP(2), \fBwrite\fP(2), \fBwritev\fP(2), \fBioctl\fP(2) の「遅い
+(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出しが無期限に停止 (block) する
+可能性のあるデバイスのことで、例としては端末、パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅いデバイスに対する I/O
+呼び出しが、 シグナルハンドラにより割り込まれた時点までに何らかのデータを すでに転送していれば、呼び出しは成功ステータス
+(通常は、転送されたバイト数) を返すことだろう。
.IP *
-.\"O .BR open (2),
-.\"O if it can block (e.g., when opening a FIFO; see
-.\"O .BR fifo (7)).
-Ää»ß (block) ¤¹¤ë²ÄǽÀ¤Î¤¢¤ë
-.BR open (2)
-(Î㤨¤Ð¡¢FIFO ¤Î¥ª¡¼¥×¥ó»þ;
-.BR fifo (7)
-»²¾È)¡£
+停止 (block) する可能性のある \fBopen\fP(2) (例えば、FIFO のオープン時; \fBfifo\fP(7) 参照)。
.IP *
-.\"O .BR wait (2),
-.\"O .BR wait3 (2),
-.\"O .BR wait4 (2),
-.\"O .BR waitid (2),
-.\"O and
-.\"O .BR waitpid (2).
-.BR wait (2),
-.BR wait3 (2),
-.BR wait4 (2),
-.BR waitid (2),
-.BR waitpid (2).
+\fBwait\fP(2), \fBwait3\fP(2), \fBwait4\fP(2), \fBwaitid\fP(2), \fBwaitpid\fP(2).
.IP *
-.\"O Socket interfaces:
-¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹:
.\" If a timeout (setsockopt()) is in effect on the socket, then these
.\" system calls switch to using EINTR. Consequently, they and are not
.\" automatically restarted, and they show the stop/cont behavior
.\" described below. (Verified from 2.6.26 source, and by experiment; mtk)
-.\"O .BR accept (2),
-.\"O .BR connect (2),
-.\"O .BR recv (2),
-.\"O .BR recvfrom (2),
-.\"O .BR recvmsg (2),
-.\"O .BR send (2),
-.\"O .BR sendto (2),
-.\"O and
-.\"O .BR sendmsg (2),
-.\"O unless a timeout has been set on the socket (see below).
-.BR accept (2),
-.BR connect (2),
-.BR recv (2),
-.BR recvfrom (2),
-.BR recvmsg (2),
-.BR send (2),
-.BR sendto (2),
-.BR sendmsg (2).
-⤷¡¢¥½¥±¥Ã¥È¤Ë¥¿¥¤¥à¥¢¥¦¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç (²¼µ»²¾È)¡£
+ソケットインターフェイス: \fBaccept\fP(2), \fBconnect\fP(2), \fBrecv\fP(2), \fBrecvfrom\fP(2),
+\fBrecvmsg\fP(2), \fBsend\fP(2), \fBsendto\fP(2), \fBsendmsg\fP(2).
+但し、ソケットにタイムアウトが設定されていない場合 (下記参照)。
.IP *
-.\"O File locking interfaces:
-¥Õ¥¡¥¤¥ë¥í¥Ã¥¯ÍÑ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹:
-.\"O .BR flock (2)
-.\"O and
-.\"O .BR fcntl (2)
-.\"O .BR F_SETLKW .
-.BR flock (2),
-.BR fcntl (2)
-.BR F_SETLKW .
+ファイルロック用インターフェイス: \fBflock\fP(2), \fBfcntl\fP(2) \fBF_SETLKW\fP.
.IP *
-.\"O POSIX message queue interfaces:
-POSIX ¥á¥Ã¥»¡¼¥¸¥¥å¡¼¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹:
-.BR mq_receive (3),
-.BR mq_timedreceive (3),
-.BR mq_send (3),
-.\"O and
-.BR mq_timedsend (3).
+POSIX メッセージキューインターフェイス: \fBmq_receive\fP(3), \fBmq_timedreceive\fP(3),
+\fBmq_send\fP(3), \fBmq_timedsend\fP(3).
.IP *
-.BR futex (2)
-.B FUTEX_WAIT
-.\"O (since Linux 2.6.22; beforehand, always failed with
-.\"O .BR EINTR ).
-(Linux 2.6.22 °Ê¹ß; ¤½¤ì°ÊÁ°¤Ï¾ï¤Ë
-.B EINTR
-¤Ç¼ºÇÔ¤·¤Æ¤¤¤¿)¡£
+\fBfutex\fP(2) \fBFUTEX_WAIT\fP (Linux 2.6.22 以降; それ以前は常に \fBEINTR\fP で失敗していた)。
.IP *
-.\"O POSIX semaphore interfaces:
-POSIX ¥»¥Þ¥Õ¥©¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹:
-.\"O .BR sem_wait (3)
-.\"O and
-.\"O .BR sem_timedwait (3)
-.\"O (since Linux 2.6.22; beforehand, always failed with
-.\"O .BR EINTR ).
-.BR sem_wait (3),
-.BR sem_timedwait (3)
-(Linux 2.6.22 °Ê¹ß; ¤½¤ì°ÊÁ°¤Ï¾ï¤Ë
-.B EINTR
-¤Ç¼ºÇÔ¤·¤Æ¤¤¤¿)¡£
+POSIX セマフォインターフェイス: \fBsem_wait\fP(3), \fBsem_timedwait\fP(3) (Linux 2.6.22 以降;
+それ以前は常に \fBEINTR\fP で失敗していた)。
.RE
.PP
-.\"O The following interfaces are never restarted after
-.\"O being interrupted by a signal handler,
-.\"O regardless of the use of
-.\"O .BR SA_RESTART ;
-.\"O they always fail with the error
-.\"O .B EINTR
-.\"O when interrupted by a signal handler:
-.\"O .\" These are the system calls that give EINTR or ERESTARTNOHAND
-.\"O .\" on interruption by a signal handler.
-°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¡¢
-.B SA_RESTART
-¤ò»È¤Ã¤Æ¤¤¤ë¤É¤¦¤«¤Ë´Ø¤ï¤é¤º¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¸å¡¢
-ºÆ¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£
-¤³¤ì¤é¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤ë¤È¡¢¾ï¤Ë¥¨¥é¡¼
-.B EINTR
-¤Ç¼ºÇÔ¤¹¤ë¡£
-.\" ¤³¤ì¤é¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ë³ä¤ê¹þ¤ß¤ÎºÝ¤Ë
-.\" EINTR ¤« ERESTARTNOHAND ¤òÊÖ¤¹¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¢¤ë¡£
+.\" These are the system calls that give EINTR or ERESTARTNOHAND
+.\" on interruption by a signal handler.
+以下のインターフェイスは、 \fBSA_RESTART\fP を使っているどうかに関わらず、シグナルハンドラにより割り込まれた後、
+再スタートすることは決してない。 これらは、シグナルハンドラにより割り込まれると、常にエラー \fBEINTR\fP で失敗する。
.RS 4
.IP * 2
-.\"O Socket interfaces, when a timeout has been set on the socket using
-.\"O .BR setsockopt (2):
-.\"O .BR accept (2),
-.\"O .BR recv (2),
-.\"O .BR recvfrom (2),
-.\"O and
-.\"O .BR recvmsg (2),
-.\"O if a receive timeout
-.\"O .RB ( SO_RCVTIMEO )
-.\"O has been set;
-.\"O .BR connect (2),
-.\"O .BR send (2),
-.\"O .BR sendto (2),
-.\"O and
-.\"O .BR sendmsg (2),
-.\"O if a send timeout
-.\"O .RB ( SO_SNDTIMEO )
-.\"O has been set.
-.BR setsockopt (2)
-¤ò»È¤Ã¤Æ¥¿¥¤¥à¥¢¥¦¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹:
-.BR accept (2),
-.BR recv (2),
-.BR recvfrom (2),
-.BR recvmsg (2)
-¤Ç¼õ¿®¥¿¥¤¥à¥¢¥¦¥È
-.RB ( SO_RCVTIMEO )
-¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤È¡¢
-.BR connect (2),
-.BR send (2),
-.BR sendto (2),
-.BR sendmsg (2)
-¤ÇÁ÷¿®¥¿¥¤¥à¥¢¥¦¥È
-.RB ( SO_SNDTIMEO )
-¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡£
+\fBsetsockopt\fP(2) を使ってタイムアウトが設定されているソケットインターフェース: \fBaccept\fP(2), \fBrecv\fP(2),
+\fBrecvfrom\fP(2), \fBrecvmsg\fP(2) で受信タイムアウト (\fBSO_RCVTIMEO\fP) が設定されている場合と、
+\fBconnect\fP(2), \fBsend\fP(2), \fBsendto\fP(2), \fBsendmsg\fP(2) で送信タイムアウト
+(\fBSO_SNDTIMEO\fP) が設定されている場合。
.IP *
-.\"O Interfaces used to wait for signals:
-¥·¥°¥Ê¥ëÂÔ¤Á¤Ë»È¤ï¤ì¤ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹:
-.BR pause (2),
-.BR sigsuspend (2),
-.BR sigtimedwait (2),
-.\"O and
-.BR sigwaitinfo (2).
+シグナル待ちに使われるインターフェイス: \fBpause\fP(2), \fBsigsuspend\fP(2), \fBsigtimedwait\fP(2),
+\fBsigwaitinfo\fP(2).
.IP *
-.\"O File descriptor multiplexing interfaces:
-¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿Â¿½Å¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹:
-.BR epoll_wait (2),
-.BR epoll_pwait (2),
-.BR poll (2),
-.BR ppoll (2),
-.BR select (2),
-.\"O and
-.BR pselect (2).
+ファイルディスクリプタ多重インターフェイス: \fBepoll_wait\fP(2), \fBepoll_pwait\fP(2), \fBpoll\fP(2),
+\fBppoll\fP(2), \fBselect\fP(2), \fBpselect\fP(2).
.IP *
-.\"O System V IPC interfaces:
-System V IPC ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹:
.\" On some other systems, SA_RESTART does restart these system calls
-.BR msgrcv (2),
-.BR msgsnd (2),
-.BR semop (2),
-.\"O and
-.BR semtimedop (2).
+System V IPC インターフェイス: \fBmsgrcv\fP(2), \fBmsgsnd\fP(2), \fBsemop\fP(2),
+\fBsemtimedop\fP(2).
.IP *
-.\"O Sleep interfaces:
-¥¹¥ê¡¼¥×ÍѤΥ¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹:
-.BR clock_nanosleep (2),
-.BR nanosleep (2),
-.\"O and
-.BR usleep (3).
+スリープ用のインターフェイス: \fBclock_nanosleep\fP(2), \fBnanosleep\fP(2), \fBusleep\fP(3).
.IP *
-.\"O .BR read (2)
-.\"O from an
-.\"O .BR inotify (7)
-.\"O file descriptor.
-.BR inotify (7)
-¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î
-.BR read (2).
+\fBinotify\fP(7) ファイルディスクリプタからの \fBread\fP(2).
.IP *
-.BR io_getevents (2).
+\fBio_getevents\fP(2).
.RE
.PP
-.\"O The
-.\"O .BR sleep (3)
-.\"O function is also never restarted if interrupted by a handler,
-.\"O but gives a success return: the number of seconds remaining to sleep.
-.BR sleep (3)
-´Ø¿ô¤â¡¢¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¾ì¹ç¡¢·è¤·¤ÆºÆ¥¹¥¿¡¼¥È¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£
-¤·¤«¤·¡¢À®¸ù¤È¤Ê¤ê¡¢»Ä¤Ã¤Æ¤¤¤ëÄä»ß»þ´Ö¤òÊÖ¤¹¡£
-.\"O .SS Interruption of System Calls and Library Functions by Stop Signals
-.SS °ì»þÄä»ß¥·¥°¥Ê¥ë¤Ë¤è¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ø¤Î³ä¤ê¹þ¤ß
-.\"O On Linux, even in the absence of signal handlers,
-.\"O certain blocking interfaces can fail with the error
-.\"O .BR EINTR
-.\"O after the process is stopped by one of the stop signals
-.\"O and then resumed via
-.\"O .BR SIGCONT .
-.\"O This behavior is not sanctioned by POSIX.1, and doesn't occur
-.\"O on other systems.
-Linux ¤Ç¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â¡¢
-¤¤¤¯¤Ä¤«¤Î¥Ö¥í¥Ã¥¥ó¥°·¿¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¡¢
-¥×¥í¥»¥¹¤¬°ì»þÄä»ß (stop) ¥·¥°¥Ê¥ë¤Î°ì¤Ä¤Ë¤è¤êÄä»ß¤µ¤ì¡¢
-.B SIGCONT
-¤Ë¤è¤êºÆ³«¤µ¤ì¤¿¸å¤Ë¡¢¥¨¥é¡¼
-.B EINTR
-¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ¤¬¤¢¤ë¡£
-¤³¤ÎµóÆ°¤Ï POSIX.1 ¤Çǧ¤á¤é¤ì¤Æ¤ª¤é¤º¡¢Â¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ïµ¯¤³¤é¤Ê¤¤¡£
+\fBsleep\fP(3) 関数も、ハンドラにより割り込まれた場合、決して再スタートされることはない。 しかし、成功となり、残っている停止時間を返す。
+.SS 一時停止シグナルによるシステムコールやライブラリ関数への割り込み
+Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキング型のインターフェイスは、 プロセスが一時停止 (stop)
+シグナルの一つにより停止され、 \fBSIGCONT\fP により再開された後に、エラー \fBEINTR\fP で失敗する可能性がある。 この挙動は
+POSIX.1 で認められておらず、他のシステムでは起こらない。
-.\"O The Linux interfaces that display this behavior are:
-¤³¤ÎµóÆ°¤ò¼¨¤¹ Linux ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£
+この挙動を示す Linux のインターフェイスは以下の通りである。
.RS 4
.IP * 2
-.\"O Socket interfaces, when a timeout has been set on the socket using
-.\"O .BR setsockopt (2):
-.\"O .BR accept (2),
-.\"O .BR recv (2),
-.\"O .BR recvfrom (2),
-.\"O and
-.\"O .BR recvmsg (2),
-.\"O if a receive timeout
-.\"O .RB ( SO_RCVTIMEO )
-.\"O has been set;
-.\"O .BR connect (2),
-.\"O .BR send (2),
-.\"O .BR sendto (2),
-.\"O and
-.\"O .BR sendmsg (2),
-.\"O if a send timeout
-.\"O .RB ( SO_SNDTIMEO )
-.\"O has been set.
-.BR setsockopt (2)
-¤ò»È¤Ã¤Æ¥¿¥¤¥à¥¢¥¦¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹:
-.BR accept (2),
-.BR recv (2),
-.BR recvfrom (2),
-.BR recvmsg (2)
-¤Ç¼õ¿®¥¿¥¤¥à¥¢¥¦¥È
-.RB ( SO_RCVTIMEO )
-¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤È¡¢
-.BR connect (2),
-.BR send (2),
-.BR sendto (2),
-.BR sendmsg (2)
-¤ÇÁ÷¿®¥¿¥¤¥à¥¢¥¦¥È
-.RB ( SO_SNDTIMEO )
-¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡£
+\fBsetsockopt\fP(2) を使ってタイムアウトが設定されているソケットインターフェース: \fBaccept\fP(2), \fBrecv\fP(2),
+\fBrecvfrom\fP(2), \fBrecvmsg\fP(2) で受信タイムアウト (\fBSO_RCVTIMEO\fP) が設定されている場合と、
+\fBconnect\fP(2), \fBsend\fP(2), \fBsendto\fP(2), \fBsendmsg\fP(2) で送信タイムアウト
+(\fBSO_SNDTIMEO\fP) が設定されている場合。
.IP * 2
-.BR epoll_wait (2),
-.BR epoll_pwait (2).
+\fBepoll_wait\fP(2), \fBepoll_pwait\fP(2).
.IP *
-.BR semop (2),
-.BR semtimedop (2).
+\fBsemop\fP(2), \fBsemtimedop\fP(2).
.IP *
-.BR sigtimedwait (2),
-.BR sigwaitinfo (2).
+\fBsigtimedwait\fP(2), \fBsigwaitinfo\fP(2).
.IP *
-.\"O .BR read (2)
-.\"O from an
-.\"O .BR inotify (7)
-.\"O file descriptor.
-.BR inotify (7)
-¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤«¤é¤Î
-.BR read (2).
+\fBinotify\fP(7) ファイルディスクリプタからの \fBread\fP(2).
.IP *
-.\"O Linux 2.6.21 and earlier:
-Linux 2.6.21 °ÊÁ°:
-.BR futex (2)
-.BR FUTEX_WAIT ,
-.BR sem_timedwait (3),
-.BR sem_wait (3).
+Linux 2.6.21 以前: \fBfutex\fP(2) \fBFUTEX_WAIT\fP, \fBsem_timedwait\fP(3),
+\fBsem_wait\fP(3).
.IP *
-.\"O Linux 2.6.8 and earlier:
-Linux 2.6.8 °ÊÁ°:
-.BR msgrcv (2),
-.BR msgsnd (2).
+Linux 2.6.8 以前: \fBmsgrcv\fP(2), \fBmsgsnd\fP(2).
.IP *
-.\"O Linux 2.4 and earlier:
-Linux 2.4 °ÊÁ°:
-.BR nanosleep (2).
+Linux 2.4 以前: \fBnanosleep\fP(2).
.RE
-.\"O .SH "CONFORMING TO"
-.SH ½àµò
-.\"O POSIX.1, except as noted.
-POSIX.1 (Ãíµ¤·¤¿ÆâÍưʳ°)¡£
-.\"O .SH BUGS
-.SH ¥Ð¥°
-.\"O .B SIGIO
-.\"O and
-.\"O .B SIGLOST
-.\"O have the same value.
-.\"O The latter is commented out in the kernel source, but
-.\"O the build process of some software still thinks that
-.\"O signal 29 is
-.\"O .BR SIGLOST .
-.B SIGIO
-¤È
-.B SIGLOST
-¤ÏƱ¤¸Ãͤò»ý¤Ã¤Æ¤¤¤ë¡£
-.B SIGLOST
-¤Ï¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤Ç¤Ï¥³¥á¥ó¥È¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤ë¡£
-¤·¤«¤·¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤Ã¤Æ¤Ï¥Ó¥ë¥É¤Î²áÄø¤Ç¥·¥°¥Ê¥ë 29 ¤ò
-.B SIGLOST
-¤È¤ß¤Ê¤·¤Æ¤·¤Þ¤¦¤â¤Î¤¬¤¢¤ë¡£
-.\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
-.BR kill (1),
-.BR getrlimit (2),
-.BR kill (2),
-.BR killpg (2),
-.BR setitimer (2),
-.BR setrlimit (2),
-.BR sgetmask (2),
-.BR sigaction (2),
-.BR sigaltstack (2),
-.BR signal (2),
-.BR signalfd (2),
-.BR sigpending (2),
-.BR sigprocmask (2),
-.BR sigqueue (2),
-.BR sigsuspend (2),
-.BR sigwaitinfo (2),
-.BR abort (3),
-.BR bsd_signal (3),
-.BR longjmp (3),
-.BR raise (3),
-.BR sigset (3),
-.BR sigsetops (3),
-.BR sigvec (3),
-.BR sigwait (3),
-.BR strsignal (3),
-.BR sysv_signal (3),
-.BR core (5),
-.BR proc (5),
-.BR pthreads (7),
-.BR sigevent (7)
+.SH 準拠
+.\" It must be a *very* long time since this was true:
+.\" .SH BUGS
+.\" .B SIGIO
+.\" and
+.\" .B SIGLOST
+.\" have the same value.
+.\" The latter is commented out in the kernel source, but
+.\" the build process of some software still thinks that
+.\" signal 29 is
+.\" .BR SIGLOST .
+POSIX.1 (注記した内容以外)。
+.SH 関連項目
+\fBkill\fP(1), \fBgetrlimit\fP(2), \fBkill\fP(2), \fBkillpg\fP(2),
+\fBrt_sigqueueinfo\fP(2), \fBsetitimer\fP(2), \fBsetrlimit\fP(2), \fBsgetmask\fP(2),
+\fBsigaction\fP(2), \fBsigaltstack\fP(2), \fBsignal\fP(2), \fBsignalfd\fP(2),
+\fBsigpending\fP(2), \fBsigprocmask\fP(2), \fBsigsuspend\fP(2), \fBsigwaitinfo\fP(2),
+\fBabort\fP(3), \fBbsd_signal\fP(3), \fBlongjmp\fP(3), \fBraise\fP(3),
+\fBpthread_sigqueue\fP(3), \fBsigqueue\fP(3), \fBsigset\fP(3), \fBsigsetops\fP(3),
+\fBsigvec\fP(3), \fBsigwait\fP(3), \fBstrsignal\fP(3), \fBsysv_signal\fP(3), \fBcore\fP(5),
+\fBproc\fP(5), \fBpthreads\fP(7), \fBsigevent\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。