.\"
.TH SIGVEC 3 2007-07-26 "Linux" "Linux Programmer's Manual"
.\"O .SH NAME
-.SH ̾Á°
+.SH 名前
.\"O sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD signal API
-sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD ÈÇ¥·¥°¥Ê¥ë API
+sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD 版シグナル API
.\"O .SH SYNOPSIS
-.SH ½ñ¼°
+.SH 書式
.B #include <signal.h>
.sp
.BI "int sigvec(int " sig ", struct sigvec *" vec ", struct sigvec *" ovec );
.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
.\"O All functions shown above:
-¾åµ¤ÎÁ´¤Æ¤Î´Ø¿ô:
+上記の全ての関数:
_BSD_SOURCE
.\"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 BSD 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.)
-¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢ÀΤʤ¬¤é¤Î BSD ÈÇ¥·¥°¥Ê¥ë API ¤ò»ÈÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à
-¤ËÂФ·¤Æ¸ß´¹À¤Î¤¢¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò glibc ¤ÇÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£
-¤³¤Î API ¤Ï²áµî¤Î¤â¤Î¤Ç¤¢¤ê¡¢¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï
-POSIX ¥·¥°¥Ê¥ë API
+これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム
+に対して互換性のあるインタフェースを glibc で提供するものである。
+この API は過去のものであり、新しいアプリケーションでは
+POSIX シグナル API
.RB ( sigaction (2),
.BR sigprocmask (2)
-¤Ê¤É) ¤ò»ÈÍѤ¹¤Ù¤¤Ç¤¢¤ë¡£
+など) を使用すべきである。
.\"O The
.\"O .BR sigvec ()
.\"O .I sig
.\"O (like the POSIX
.\"O .BR sigaction (2)).
-´Ø¿ô
+関数
.BR sigvec ()
-¤Ï¡¢(POSIX ¤Î
+は、(POSIX の
.BR sigaction (2)
-¤ÈƱÍͤË) ¥·¥°¥Ê¥ë
+と同様に) シグナル
.I sig
-¤ÎÆ°ºî¤ÎÀßÄꡦ¼èÆÀ¤ò¹Ô¤¦¡£
+の動作の設定・取得を行う。
.\"O If
.\"O .I vec
.\"O is not NULL, it points to a
.\"O structure that defines the new disposition for
.\"O .IR sig .
.I vec
-¤Ï¡¢NULL °Ê³°¤Î¾ì¹ç¡¢
+は、NULL 以外の場合、
.I sig
-¤Î¿·¤·¤¤Æ°ºî¤òÄêµÁ¤·¤¿
+の新しい動作を定義した
.I sigvec
-¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
+構造体へのポインタである。
.\"O If
.\"O .I ovec
.\"O is not NULL, it points to a
.\"O structure that is used to return the previous disposition of
.\"O .IR sig .
.I ovec
-¤Ï¡¢NULL °Ê³°¤Î¾ì¹ç¡¢
+は、NULL 以外の場合、
.I sig
-¤ÎÊѹ¹Á°¤ÎÆ°ºî¤òÊÖ¤¹¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë
+の変更前の動作を返すために使用される
.I sigvec
-¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
+構造体へのポインタである。
.\"O To obtain the current disposition of
.\"O .I sig
.\"O without changing it, specify NULL for
.\"O and a non-NULL pointer for
.\"O .IR ovec .
.I sig
-¤ÎÆ°ºî¤òÊѹ¹¤»¤º¤Ë¸½ºß¤ÎÆ°ºî¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë¤Ï¡¢
+の動作を変更せずに現在の動作を取得するためには、
.I vec
-¤Ë NULL ¤ò»ØÄꤷ¡¢
+に NULL を指定し、
.I ovec
-¤Ë NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤ò»ØÄꤹ¤ì¤Ð¤è¤¤¡£
+に NULL でないポインタを指定すればよい。
.\"O The dispositions for
.\"O .B SIGKILL
.\"O .B SIGSTOP
.\"O cannot be changed.
.B SIGKILL
-¤È
+と
.B SIGSTOP
-¤ÎÆ°ºî¤ÏÊѹ¹¤Ç¤¤Ê¤¤¡£
+の動作は変更できない。
.\"O The
.\"O .I sigvec
.\"O structure has the following form:
.I sigvec
-¹½Â¤ÂΤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë:
+構造体は以下の通りである:
.in +4n
.nf
.\"O .B SIG_IGN
.\"O meaning that the signal is ignored.
.I sv_handler
-¥Õ¥£¡¼¥ë¥É¤Ï¥·¥°¥Ê¥ë¤ÎÆ°ºî¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¡¢
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Î¥¢¥É¥ì¥¹¤«¡¢
+フィールドはシグナルの動作を指定するもので、
+シグナルハンドラ関数のアドレスか、
.B SIG_DFL
-¤È
+と
.B SIG_IGN
-¤Î¤¤¤º¤ì¤«¤ò»ØÄê¤Ç¤¤ë¡£
+のいずれかを指定できる。
.B SIG_DFL
-¤Ï¥·¥°¥Ê¥ë¤ËŬÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò°ÕÌ£¤·¡¢
+はシグナルに適用されるデフォルトの動作を意味し、
.B SIG_IGN
-¤Ï¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+はシグナルを無視することを意味する。
.\"O If
.\"O .I sv_handler
.\"O .B SIGSTOP
.\"O are silently ignored.
.I sv_handler
-¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤¿¾ì¹ç¡¢
+にシグナルハンドラのアドレスを指定した場合、
.I sv_mask
-¤Ï¥Ï¥ó¥É¥é¤¬¼Â¹ÔÃæ¤Ë¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤Ù¤¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤ò»ØÄꤹ¤ë¡£
-¤Þ¤¿¡¢¥Ï¥ó¥É¥é¤òµ¯Æ°¤·¤¿¥·¥°¥Ê¥ë¼«¿È¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£
+はハンドラが実行中にブロックされるべきシグナルのマスクを指定する。
+また、ハンドラを起動したシグナル自身はデフォルトでブロックされる。
.B SIGKILL
-¤«
+か
.B SIGSTOP
-¤ò¥Ö¥í¥Ã¥¯¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÌۤäÆ̵»ë¤µ¤ì¤ë¡£
+をブロックしようとした場合には、黙って無視される。
.\"O If
.\"O .I sv_handler
.\"O field specifies flags controlling what happens when the handler is called.
.\"O This field may contain zero or more of the following flags:
.I sv_handler
-¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤¿¾ì¹ç¡¢
+にシグナルハンドラのアドレスを指定した場合、
.I sv_flags
-¥Õ¥£¡¼¥ë¥É¤Ï¥Ï¥ó¥É¥é¤¬¸Æ¤Ð¤ì¤¿ºÝ¤ÎµóÆ°¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£
-¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢0 ¤«¡¢°Ê²¼¤Î¥Õ¥é¥°¤ò 1¸Ä°Ê¾å»ØÄê¤Ç¤¤ë:
+フィールドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。
+このフィールドには、0 か、以下のフラグを 1個以上指定できる:
.TP
.B SV_INTERRUPT
.\"O If the signal handler interrupts a blocking system call,
.\"O .BR EINTR .
.\"O If this flag is not specified, then system calls are restarted
.\"O by default.
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Ää»ßÃæ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÃæÃǤ·¤¿¾ì¹ç¡¢
-¥Ï¥ó¥É¥é¤«¤éÉüµ¢¤·¤Æ¤â¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏºÆ³«¤µ¤ì¤º¡¢
-¥¨¥é¡¼
+シグナルハンドラが停止中のシステムコールを中断した場合、
+ハンドラから復帰しても、システムコールは再開されず、
+ã\82¨ã\83©ã\83¼
.B EINTR
-¤Ç¼ºÇÔ¤¹¤ë¡£
-¤³¤Î¥Õ¥é¥°¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
-¥Ç¥Õ¥©¥ë¥È¤ÇºÆ³«¤µ¤ì¤ë¡£
+で失敗する。
+このフラグを指定しなかった場合、システムコールは
+デフォルトで再開される。
.TP
.B SV_RESETHAND
.\"O Reset the disposition of the signal to the default
.\"O .BR sigvec ()
.\"O or until the process performs an
.\"O .BR execve (2).
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¥·¥°¥Ê¥ë¤ÎÆ°ºî¤ò
-¥Ç¥Õ¥©¥ë¥È¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£
-¤³¤Î¥Õ¥é¥°¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤â¤¦°ìÅÙ
+シグナルハンドラを呼び出す前にシグナルの動作を
+デフォルトにリセットする。
+このフラグを指定しなかった場合、もう一度
.BR sigvec ()
-¤ò¸Æ¤Ó½Ð¤·¤ÆÌÀ¼¨Åª¤Ëºï½ü¤µ¤ì¤ë¤«¡¢¥×¥í¥»¥¹¤¬
+を呼び出して明示的に削除されるか、プロセスが
.BR execve (2)
-¤ò¼Â¹Ô¤¹¤ë¤Þ¤Ç¡¢¥Ï¥ó¥É¥é¤ÏÀßÄꤵ¤ì¤¿¤Þ¤Þ¤È¤Ê¤ë¡£
+を実行するまで、ハンドラは設定されたままとなる。
.TP
.B SV_ONSTACK
.\"O Handle the signal on the alternate signal stack
.\"O .BR sigstack ()
.\"O function; the POSIX replacement is
.\"O .BR sigaltstack (2)).
-ÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¾å¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¼Â¹Ô¤¹¤ë
-(Îò»ËŪ¤Ë¡¢BSD ¤Ç¤ÏÂåÂØ¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ÏÇѻߤµ¤ì¤¿´Ø¿ô
+代替シグナルスタック上でシグナルハンドラを実行する
+(歴史的に、BSD では代替シグナルスタックは廃止された関数
.BR sigstack ()
-¤ò»È¤Ã¤ÆÀßÄꤹ¤ë¡£POSIX ¤Ç¤Ï¡¢Âå¤ï¤ê¤Ë
+を使って設定する。POSIX では、代わりに
.BR sigaltstack (2)
-¤ò»ÈÍѤ¹¤ë)¡£
+を使用する)。
.PP
.\"O The
.\"O .BR sigmask ()
.\"O field given to
.\"O .BR sigvec ()
.\"O using code such as the following:
-´Ø¿ô
+関数
.BR sigmask ()
-¤Ï
+は
.I signum
-¤ËÂФ¹¤ë¡Ö¥·¥°¥Ê¥ë¥Þ¥¹¥¯¡×¤ò¹½À®¤·¤ÆÊÖ¤¹¡£
-Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò»È¤¦¤È¡¢
+に対する「シグナルマスク」を構成して返す。
+例えば、以下のようなコードを使うと、
.BR sigvec ()
-¤ËÅϤ¹
+に渡す
.I vec.sv_mask
-¤ò½é´ü²½¤Ç¤¤ë¡£
+を初期化できる。
.nf
vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);
.\"O .B SIGSTOP
.\"O are silently ignored.
.BR sigblock ()
-´Ø¿ô¤Ï¡¢
+関数は、
.I mask
-¤Ë¤¢¤ë¥·¥°¥Ê¥ë¤ò¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ËÄɲä·
-(POSIX ¤Î
+にあるシグナルをプロセスのシグナルマスクに追加し
+(POSIX の
.I sigprocmask(SIG_BLOCK)
-¤ÈƱÍÍ)¡¢Êѹ¹Á°¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£
+と同様)、変更前のプロセスのシグナルマスクを返す。
.B SIGKILL
-¤ä
+や
.B SIGSTOP
-¤ò¥Ö¥í¥Ã¥¯¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÌۤäÆ̵»ë¤µ¤ì¤ë¡£
+をブロックしようとした場合には、黙って無視される。
.PP
.\"O The
.\"O .BR sigsetmask ()
.\"O .IR sigprocmask(SIG_SETMASK) ),
.\"O and returns the process's previous signal mask.
.BR sigsetmask ()
-´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ò
+関数はプロセスのシグナルマスクを
.I mask
-¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤷ (POSIX ¤Î
+で指定された値に設定し (POSIX の
.I sigprocmask(SIG_SETMASK)
-¤ÈƱÍÍ)¡¢Êѹ¹Á°¤Î¥×¥í¥»¥¹¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£
+と同様)、変更前のプロセスのシグナルマスクを返す。
.PP
.\"O The
.\"O .BR siggetmask ()
.\"O This call is equivalent to
.\"O .IR sigblock(0) .
.BR siggetmask ()
-´Ø¿ô¤Ï¥×¥í¥»¥¹¤Î¸½ºß¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£¤³¤Î´Ø¿ô¤Ï
+関数はプロセスの現在のシグナルマスクを返す。この関数は
.I sigblock(0)
-¤ÈÅù²Á¤Ç¤¢¤ë¡£
+と等価である。
.\"O .SH RETURN VALUE
-.SH ÊÖ¤êÃÍ
+.SH 返り値
.\"O The
.\"O .BR sigvec ()
.\"O function returns 0 on success; on error, it returns \-1 and sets
.\"O .I errno
.\"O to indicate the error.
.BR sigvec ()
-´Ø¿ô¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢
+関数は成功すると 0 を返す。エラーの場合、\-1 を返し、
.I errno
-¤Ë¥¨¥é¡¼¤ò¼¨¤¹Ãͤò¥»¥Ã¥È¤¹¤ë¡£
+にエラーを示す値をセットする。
.\"O The
.\"O .BR sigblock ()
.\"O .BR sigsetmask ()
.\"O functions return the previous signal mask.
.BR sigblock ()
-¤È
+と
.BR sigsetmask ()
-¤ÏÊѹ¹Á°¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£
+は変更前のシグナルマスクを返す。
.\"O The
.\"O .BR sigmask ()
.\"O function returns the signal mask for
.\"O .IR signum .
.BR sigmask ()
-´Ø¿ô¤Ï
+関数は
.I signum
-¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊÖ¤¹¡£
+のシグナルマスクを返す。
.\"O .SH ERRORS
-.SH ¥¨¥é¡¼
+.SH ã\82¨ã\83©ã\83¼
.\"O See the ERRORS under
.\"O .BR sigaction (2)
.\"O and
.\"O .BR sigprocmask (2).
.BR sigaction (2)
-¤È
+と
.BR sigprocmask (2)
-¤Î¡Ö¥¨¥é¡¼¡×¤ÎÀá¤ò»²¾È¡£
+の「エラー」の節を参照。
.\"O .SH "CONFORMING TO"
-.SH ½àµò
+.SH 準拠
.\"O All of these functions were in
.\"O 4.3BSD, except
.\"O .BR siggetmask (),
.\"O whose origin is unclear.
.\"O These functions are obsolete: do not use them in new programs.
-¤³¤ì¤é¤Î´Ø¿ô¤Î¤¦¤Á
+これらの関数のうち
.BR siggetmask ()
-°Ê³°¤ÎÁ´¤Æ¤Ï 4.3BSD ¤Ë¤¢¤Ã¤¿¡£
+以外の全ては 4.3BSD にあった。
.BR siggetmask ()
-¤Î½Ð¼«¤Ï¤Ï¤Ã¤¤ê¤·¤Ê¤¤¡£
-¤³¤ì¤é¤Î´Ø¿ô¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ê¡¢¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤ·¤Ê¤¤¤³¤È¡£
+の出自ははっきりしない。
+これらの関数は廃止予定であり、新しいプログラムでは使用しないこと。
.\"O .SH NOTES
-.SH Ãí°Õ
+.SH 注意
.\"O On 4.3BSD, the
.\"O .BR signal ()
.\"O function provided reliable semantics (as when calling
.\"O with
.\"O .I vec.sv_mask
.\"O equal to 0).
-4.3BSD ¤Ç¤Ï¡¢¿®ÍêÀ¤Î¤¢¤ë¥·¥°¥Ê¥ë½èÍýµ¡¹½¤òÄ󶡤¹¤ë
+4.3BSD では、信頼性のあるシグナル処理機構を提供する
.RI ( vec.sv_mask
-¤ò 0 ¤Ç
+を 0 で
.BR sigvec ()
-¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤¤ÈƱÍÍ)¡£
+を呼び出したときと同様)。
.\"O On System V,
.\"O .BR signal ()
.\"O provides unreliable semantics.
-System V ¤¬Ä󶡤¹¤ë½èÍýµ¡¹½¤Ï¿®ÍêÀ¤Î¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£
+System V が提供する処理機構は信頼性のないものである。
.\"O POSIX.1-2001 leaves these aspects of
.\"O .BR signal ()
.\"O unspecified.
.\"O See
.\"O .BR signal (2)
.\"O for further details.
-POSIX.1-2001 ¤Ç¤Ï¡¢
+POSIX.1-2001 では、
.BR signal ()
-¤Î¤³¤ÎÅÀ¤Ïµ¬Äꤷ¤Ê¤¤¤Þ¤Þ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£
-¤µ¤é¤Ê¤ë¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï
+のこの点は規定しないままとなっている。
+さらなる詳細については
.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 "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
.BR kill (2),
.BR pause (2),
.BR sigaction (2),