.\"
.TH SIGSET 3 2010-09-20 "Linux" "Linux Programmer's Manual"
.\"O .SH NAME
-.SH ̾Á°
+.SH 名前
.\"O sigset, sighold, sigrelse, sigignore \- System V signal API
-sigset, sighold, sigrelse, sigignore \- System V ÈÇ¥·¥°¥Ê¥ë API
+sigset, sighold, sigrelse, sigignore \- System V 版シグナル API
.\"O .SH SYNOPSIS
-.SH ½ñ¼°
+.SH 書式
.B #include <signal.h>
.sp
.B typedef void (*sighandler_t)(int);
.in -4n
.\"O Feature Test Macro Requirements for glibc (see
.\"O .BR feature_test_macros (7)):
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
+glibc 向けの機能検査マクロの要件
.RB ( feature_test_macros (7)
-»²¾È):
+参照):
.in
.sp
.ad l
.RE
.ad
.\"O .SH DESCRIPTION
-.SH ÀâÌÀ
+.SH 説明
.\"O These functions are provided in glibc as a compatibility interface
.\"O for programs that make use of the historical System V signal API.
.\"O This API is obsolete: new applications should use the POSIX signal API
.\"O .RB ( sigaction (2),
.\"O .BR sigprocmask (2),
.\"O etc.)
-¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ÀΤʤ¬¤é¤Î System V ÈÇ¥·¥°¥Ê¥ë API ¤ò»ÈÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à
-¤ËÂФ·¤Æ¸ß´¹À¤Î¤¢¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò glibc ¤ÇÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£
-¤³¤Î API ¤Ï²áµî¤Î¤â¤Î¤Ç¤¢¤ê¡¢¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï
-POSIX ¥·¥°¥Ê¥ë API
+これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム
+に対して互換性のあるインタフェースを glibc で提供するものである。
+この API は過去のものであり、新しいアプリケーションでは
+POSIX シグナル API
.RB ( sigaction (2),
.BR sigprocmask (2)
-¤Ê¤É) ¤ò»ÈÍѤ¹¤Ù¤¤Ç¤¢¤ë¡£
+など) を使用すべきである。
.\"O The
.\"O .BR sigset ()
.\"O .I disp
.\"O argument can be the address of a signal handler function,
.\"O or one of the following constants:
-´Ø¿ô
+関数
.BR sigset ()
-¤Ï¥·¥°¥Ê¥ë
+はシグナル
.I sig
-¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¡£
+のシグナルハンドラの動作を変更する。
.I disp
-°ú¤¿ô¤Ë¤Ï¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Î¥¢¥É¥ì¥¹¤«¡¢
-°Ê²¼¤ÎÄê¿ô¤Î¤¤¤º¤ì¤«°ì¤Ä¤ò»ØÄê¤Ç¤¤ë¡£
+引き数には、シグナルハンドラ関数のアドレスか、
+以下の定数のいずれか一つを指定できる。
.TP
.B SIG_DFL
.\"O Reset the disposition of
.\"O .I sig
.\"O to the default.
.I sig
-¤ÎÆ°ºî¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£
+の動作をデフォルトにリセットする。
.TP
.B SIG_IGN
.\"O Ignore
.\"O .IR sig .
.I sig
-¤ò̵»ë¤¹¤ë¡£
+を無視する。
.TP
.B SIG_HOLD
.\"O Add
.\"O to the process's signal mask, but leave the disposition of
.\"O .I sig
.\"O unchanged.
-¤½¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë
+そのプロセスのシグナルマスクに
.I sig
-¤òÄɲ乤뤬¡¢
+を追加するが、
.I sig
-¤ÎÆ°ºî¤ÏÊѹ¹¤·¤Ê¤¤¡£
+の動作は変更しない。
.PP
.\"O If
.\"O .I disp
.\"O .I sig
.\"O is added to the process's signal mask during execution of the handler.
.I disp
-¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¥¢¥É¥ì¥¹¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¼Â¹ÔÃæ¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë
+にシグナルハンドラのアドレスが指定された場合、
+シグナルハンドラの実行中は、そのプロセスのシグナルマスクに
.I sig
-¤¬Äɲ䵤ì¤ë¡£
+が追加される。
.PP
.\"O If
.\"O .I disp
.\"O .I sig
.\"O is removed from the process's signal mask.
.I disp
-¤Ë
+に
.B SIG_HOLD
-°Ê³°¤ÎÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢
-¤½¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤é
+以外の値が指定された場合、
+そのプロセスのシグナルマスクから
.I sig
-¤¬ºï½ü¤µ¤ì¤ë¡£
+が削除される。
.PP
.\"O The dispositions for
.\"O .B SIGKILL
.\"O and
.\"O .B SIGSTOP
.\"O cannot be changed.
-¥·¥°¥Ê¥ë
+シグナル
.B SIGKILL
-¤È
+と
.B SIGSTOP
-¤ËÂФ¹¤ëÆ°ºî¤ÏÊѹ¹¤Ç¤¤Ê¤¤¡£
+に対する動作は変更できない。
.PP
.\"O The
.\"O .BR sighold ()
.\"O function adds
.\"O .I sig
.\"O to the calling process's signal mask.
-´Ø¿ô
+関数
.BR sighold ()
-¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ë
+は、呼び出し元プロセスのシグナルマスクに
.I sig
-¤òÄɲ乤롣
+を追加する。
.\"O The
.\"O .BR sigrelse ()
.\"O function removes
.\"O .I sig
.\"O from the calling process's signal mask.
-´Ø¿ô
+関数
.BR sigrelse ()
-¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤«¤é
+は、呼び出し元プロセスのシグナルマスクから
.I sig
-¤òºï½ü¤¹¤ë¡£
+を削除する。
.\"O The
.\"O .BR sigignore ()
.\"O .I sig
.\"O to
.\"O .BR SIG_IGN .
-´Ø¿ô
+関数
.BR sigignore ()
-¤Ï¡¢
+は、
.I sig
-¤ÎÆ°ºî¤ò
+の動作を
.B SIG_IGN
-¤ËÀßÄꤹ¤ë¡£
+に設定する。
.\"O .SH RETURN VALUE
-.SH ÊÖ¤êÃÍ
+.SH 返り値
.\"O On success,
.\"O .BR sigset ()
.\"O returns
.\"O or the signal's previous disposition
.\"O if it was not blocked before the call.
.BR sigset ()
-¤ÏÀ®¸ù¤¹¤ë¤È¡¢
-¸Æ¤Ó½Ð¤·Á°¤Ë
+は成功すると、
+呼び出し前に
.I sig
-¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï
+がブロックされていた場合には
.B SIG_HOLD
-¤òÊÖ¤·¡¢
-¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï
-Êѹ¹Á°¤Î¤½¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤òÊÖ¤¹¡£
+を返し、
+ブロックされていなかった場合には
+変更前のそのシグナルの動作を返す。
.\"O On error,
.\"O .BR sigset ()
.\"O returns \-1, with
.\"O .I errno
.\"O set to indicate the error.
-¥¨¥é¡¼¤Î¾ì¹ç¡¢
+エラーの場合、
.BR sigset ()
-¤Ï \-1 ¤òÊÖ¤·¡¢
+は \-1 を返し、
.I errno
-¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£
+にエラーを示す値をセットする。
.\"O (But see BUGS below.)
-⤷¡¢°Ê²¼¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤â»²¾È¤Î¤³¤È¡£
+但し、以下の「バグ」の節も参照のこと。
.\"O The
.\"O .BR sighold (),
.\"O functions return 0 on success; on error, these functions return \-1 and set
.\"O .I errno
.\"O to indicate the error.
-´Ø¿ô
+関数
.BR sighold (),
.BR sigrelse (),
.BR sigignore ()
-¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢
+は成功すると 0 を返す。エラーの場合、\-1 を返し、
.I errno
-¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£
+にエラーを示す値をセットする。
.\"O .SH ERRORS
-.SH ¥¨¥é¡¼
+.SH ã\82¨ã\83©ã\83¼
.\"O For
.\"O .BR sigset ()
.\"O see the ERRORS under
.\"O and
.\"O .BR sigprocmask (2).
.BR sigset ()
-¤Ë´Ø¤·¤Æ¤Ï¡¢
+に関しては、
.BR sigaction (2)
-¤È
+と
.BR sigprocmask (2)
-¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£
+の「エラー」の節を参照。
.\"O For
.\"O .BR sighold ()
.\"O see the ERRORS under
.\"O .BR sigprocmask (2).
.BR sighold ()
-¤È
+と
.BR sigrelse ()
-¤Ë´Ø¤·¤Æ¤Ï¡¢
+に関しては、
.BR sigprocmask (2)
-¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£
+の「エラー」の節を参照。
.\"O For
.\"O .BR sigignore (),
.\"O see the errors under
.\"O .BR sigaction (2).
.BR sigignore ()
-¤Ë´Ø¤·¤Æ¤Ï¡¢
+に関しては、
.BR sigaction (2)
-¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£
+の「エラー」の節を参照。
.\"O .SH "CONFORMING TO"
-.SH ½àµò
+.SH 準拠
SVr4, POSIX.1-2001.
.\"O These functions are obsolete: do not use them in new programs.
-¤³¤ì¤é¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ·¤Ê¤¤¤³¤È¡£
+これらの関数は廃止予定である。新しいプログラムでは使用しないこと。
.\"O POSIX.1-2008 marks
.\"O .BR sighold (),
.\"O .BR sigignore (),
.\"O and
.\"O .BR sigsuspend (2)
.\"O instead.
-POSIX.1-2008 ¤Ï¡¢
+POSIX.1-2008 は、
.BR sighold (),
.BR sigignore (),
.BR sigpause (),
.BR sigrelse (),
.BR sigset ()
-¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£
-Âå¤ï¤ê¤Ë¡¢
+を廃止予定としている。
+代わりに、
.BR sigaction (2),
.BR sigprocmask (2),
.BR pthread_sigmask (3),
.BR sigsuspend (2)
-¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£
+の使用が推奨されている。
.\"O .SH NOTES
-.SH Ãí°Õ
+.SH 注意
.\"O These functions appeared in glibc version 2.1.
-¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc 2.1 ¤ÇÅо줷¤¿¡£
+これらの関数は glibc 2.1 で登場した。
.\"O The
.\"O .I sighandler_t
.\"O .BR sigset ()
.\"O prototype more easily readable.
.I sighandler_t
-·¿¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ê¡¢¤³¤Î man page ¤Ç
+型は GNU による拡張であり、この man page で
.BR sigset ()
-¤Î¥×¥í¥È¥¿¥¤¥×¤ò¤è¤êÆɤߤ䤹¤¯¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£
+のプロトタイプをより読みやすくするために使われているだけである。
.\"O The
.\"O .BR sigset ()
.\"O with
.\"O .I sa_mask
.\"O equal to 0).
-´Ø¿ô
+関数
.BR sigset ()
-¤Ï¿®ÍêÀ¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýµ¡¹½¤òÄ󶡤¹¤ë
+は信頼性のあるシグナル処理機構を提供する
.RI ( sa_mask
-¤ò 0 ¤Ç
+を 0 で
.BR sigaction (2)
-¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤¤ÈƱÍÍ)¡£
+を呼び出したときと同様)。
.\"O On System V, the
.\"O .BR signal ()
.\"O .I sa_mask
.\"O equal to
.\"O .IR "SA_RESETHAND | SA_NODEFER" ).
-System V ¤Ç¤Ï¡¢´Ø¿ô
+System V では、関数
.BR signal ()
-¤¬Ä󶡤¹¤ë½èÍýµ¡¹½¤Ï¿®ÍêÀ¤Î¤Ê¤¤¤â¤Î¤Ç¤¢¤ë
+が提供する処理機構は信頼性のないものである
.RI ( sa_mask
-¤ò
+を
.IR "SA_RESETHAND | SA_NODEFER"
-¤È¤·¤Æ
+として
.BR sigaction (2)
-¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤¤ÈƱÍÍ)¡£
+を呼び出したときと同様)。
.\"O On BSD,
.\"O .BR signal ()
.\"O provides reliable semantics.
-BSD ¤Ç¤Ï¡¢
+BSD では、
.BR signal ()
-¤Ï¿®ÍêÀ¤Î¤¢¤ë½èÍýµ¡¹½¤òÄ󶡤¹¤ë¡£
+は信頼性のある処理機構を提供する。
.\"O POSIX.1-2001 leaves these aspects of
.\"O .BR signal ()
.\"O unspecified.
-POSIX.1-2001 ¤Ç¤Ï¡¢
+POSIX.1-2001 では、
.BR signal ()
-¤Î¤³¤ÎÅÀ¤Ïµ¬Äꤷ¤Ê¤¤¤Þ¤Þ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£
+のこの点は規定しないままとなっている。
.\"O See
.\"O .BR signal (2)
.\"O for further details.
-¤µ¤é¤Ê¤ë¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï
+さらなる詳細については
.BR signal (2)
-¤ò»²¾È¡£
+を参照。
.\"O In order to wait for a signal,
.\"O BSD and System V both provided a function named
.\"O See
.\"O .BR sigpause (3)
.\"O for details.
-BSD ¤È System V ¤Î¤É¤Á¤é¤Î¥·¥¹¥Æ¥à¤Ç¤â
-¥·¥°¥Ê¥ë¤òÂԤĤ¿¤á¤Ë¡¢
+BSD と System V のどちらのシステムでも
+シグナルを待つために、
.BR sigpause (3)
-¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¤¬¡¢
-¤³¤Î´Ø¿ô¤Î°ú¤¿ô¤ÏξÊý¤Î¥·¥¹¥Æ¥à¤Ç°Û¤Ê¤ë¡£
-¾ÜºÙ¤Ï
+という名前の関数が提供されているが、
+この関数の引き数は両方のシステムで異なる。
+詳細は
.BR sigpause (3)
-¤ò»²¾È¡£
+を参照。
.\"O .SH BUGS
-.SH ¥Ð¥°
+.SH ã\83\90ã\82°
.\"O In versions of glibc before 2.2,
.\"O .BR sigset ()
.\"O did not unblock
.\"O .I disp
.\"O was specified as a value other than
.\"O .BR SIG_HOLD .
-2.2 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢
+2.2 より前のバージョンの glibc では、
.I disp
-¤Ë
+に
.B SIG_HOLD
-°Ê³°¤ÎÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢
+以外の値が指定された場合、
.I sig
-¤Î¥Ö¥í¥Ã¥¯²ò½ü¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¡£
+のブロック解除を行っていなかった。
.\"O In all versions of glibc up to and including 2.3.5,
.\"O .BR sigset ()
.\"O does not correctly return the previous disposition of the signal
.\"O in two cases.
-2.3.5 °ÊÁ°¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢
+2.3.5 以前の全てのバージョンの glibc では、
.BR sigset ()
-¤¬Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤òÀµ¤·¤¯ÊÖ¤µ¤Ê¤¤¾ì¹ç¤¬ 2¤Ä¤¢¤ë¡£
+が変更前のシグナルの動作を正しく返さない場合が 2つある。
.\"O First, if
.\"O .I disp
.\"O is specified as
.\"O (unless the signal was blocked, in which case
.\"O .B SIG_HOLD
.\"O should be returned).
-°ì¤Ä¤á¤Ï¡¢
+一つめは、
.I disp
-¤Ë
+に
.B SIG_HOLD
-¤¬»ØÄꤵ¤ì¤ë¤È¡¢À®¸ù¤·¤¿¾ì¹ç
+が指定されると、成功した場合
.BR sigset ()
-¤Ï¾ï¤Ë
+は常に
.B SIG_HOLD
-¤òÊÖ¤¹¤³¤È¤Ç¤¢¤ë¡£
-Àµ¤·¤¯¤Ï¡¢(¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï)
-Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤òÊÖ¤¹¤Ù¤¤Ç¤¢¤ë
-(¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢
+を返すことである。
+正しくは、(シグナルがブロックされていなかった場合には)
+変更前のシグナルの動作を返すべきである
+(シグナルがブロックされていた場合には、
.B SIG_HOLD
-¤¬ÊÖ¤µ¤ì¤ë)¡£
+が返される)。
.\"O Second, if the signal is currently blocked, then
.\"O the return value of a successful
.\"O .BR sigset ()
.\"O should be
.\"O .BR SIG_HOLD .
.\"O Instead, the previous disposition of the signal is returned.
-¤â¤¦°ì¤Ä¤Ï¡¢¥·¥°¥Ê¥ë¤¬¸½ºß¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢
-À®¸ù¤·¤¿¾ì¹ç¤Î
+もう一つは、シグナルが現在ブロックされている場合には、
+成功した場合の
.BR sigset ()
-¤ÎÊÖ¤êÃͤÏ
+の返り値は
.B SIG_HOLD
-¤Ë¤Ê¤ë¤Ù¤¤Ç¤¢¤ë¤¬¡¢¼ÂºÝ¤Ë¤Ï
-Êѹ¹Á°¤Î¥·¥°¥Ê¥ë¤ÎÆ°ºî¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ç¤¢¤ë¡£
+になるべきであるが、実際には
+変更前のシグナルの動作が返されることである。
.\"O These problems have been fixed since glibc 2.5.
-¤³¤ì¤é¤ÎÌäÂê¤Ï glibc 2.5 °Ê¹ß¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£
+これらの問題は glibc 2.5 以降で修正されている。
.\" See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
.\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
.BR kill (2),
.BR pause (2),
.BR sigaction (2),