OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / release / man3 / sigvec.3
index ac54332..fabdbe4 100644 (file)
@@ -1,6 +1,7 @@
 .\" t
 .\" Copyright (c) 2005 by Michael Kerrisk <mtk.manpages@gmail.com>
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\"*******************************************************************
 .\"
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH SIGVEC 3 2007\-07\-26 Linux "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 2005 Akihiro MOTOKI all rights reserved.
+.\" Translated 2005-12-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\"
+.TH SIGVEC 3 2014\-12\-31 Linux "Linux Programmer's Manual"
 .SH 名前
 sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD 版シグナル API
 .SH 書式
 \fB#include <signal.h>\fP
 .sp
-\fBint sigvec(int \fP\fIsig\fP\fB, struct sigvec *\fP\fIvec\fP\fB, struct sigvec
+\fBint sigvec(int \fP\fIsig\fP\fB, const struct sigvec *\fP\fIvec\fP\fB, struct sigvec
 *\fP\fIovec\fP\fB);\fP
 .sp
 \fBint sigmask(int \fP\fIsignum\fP\fB);\fP
@@ -49,14 +55,15 @@ glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参
 .sp
 上記の全ての関数: _BSD_SOURCE
 .SH 説明
-これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対して互換性のあるインタフェースを glibc
\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81æ\98\94ã\81ªã\81\8cã\82\89ã\81® BSD ç\89\88ã\82·ã\82°ã\83\8aã\83« API ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\97ã\83­ã\82°ã\83©ã\83  ã\81«å¯¾ã\81\97ã\81¦äº\92æ\8f\9bæ\80§ã\81®ã\81\82ã\82\8bã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92 glibc
 で提供するものである。 この API は過去のものであり、新しいアプリケーションでは POSIX シグナル API (\fBsigaction\fP(2),
 \fBsigprocmask\fP(2)  など) を使用すべきである。
 
 関数 \fBsigvec\fP()  は、(POSIX の \fBsigaction\fP(2)  と同様に) シグナル \fIsig\fP の動作の設定・取得を行う。
-\fIvec\fP は、NULL 以外の場合、 \fIsig\fP の新しい動作を定義した \fIsigvec\fP 構造体へのポインタである。 \fIovec\fP
-は、NULL 以外の場合、 \fIsig\fP の変更前の動作を返すために使用される \fIsigvec\fP 構造体へのポインタである。 \fIsig\fP
-の動作を変更せずに現在の動作を取得するためには、 \fIvec\fP に NULL を指定し、 \fIovec\fP に NULL でないポインタを指定すればよい。
+\fIvec\fP は、NULL 以外の場合、 \fIsig\fP の新しい動作を定義した \fIsigvec\fP 構造体へのポインターである。 \fIovec\fP
+は、NULL 以外の場合、 \fIsig\fP の変更前の動作を返すために使用される \fIsigvec\fP 構造体へのポインターである。 \fIsig\fP
+の動作を変更せずに現在の動作を取得するためには、 \fIvec\fP に NULL を指定し、 \fIovec\fP に NULL
+でないポインターを指定すればよい。
 
 シグナル \fBSIGKILL\fP と \fBSIGSTOP\fP に対する動作は変更できない。
 
@@ -65,41 +72,41 @@ glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参
 .nf
 
 struct sigvec {
-    void (*sv_handler)();  /* Signal disposition */
-    int    sv_mask;        /* Signals to be blocked in handler */
-    int    sv_flags;       /* Flags */
+    void (*sv_handler)(int); /* Signal disposition */
+    int    sv_mask;          /* Signals to be blocked in handler */
+    int    sv_flags;         /* Flags */
 };
 
 .fi
 .in
-\fIsv_handler\fP フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関数のアドレスか、 \fBSIG_DFL\fP と
+\fIsv_handler\fP フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関数のアドレスか、 \fBSIG_DFL\fP と
 \fBSIG_IGN\fP のいずれかを指定できる。 \fBSIG_DFL\fP はシグナルに適用されるデフォルトの動作を意味し、 \fBSIG_IGN\fP
 はシグナルを無視することを意味する。
 
-\fIsv_handler\fP にシグナルハンドラのアドレスを指定した場合、 \fIsv_mask\fP
\81¯ã\83\8fã\83³ã\83\89ã\83©ã\81\8cå®\9fè¡\8c中ã\81«ã\83\96ã\83­ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bã\81¹ã\81\8dã\82·ã\82°ã\83\8aã\83«ã\81®ã\83\9eã\82¹ã\82¯ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ã\81¾ã\81\9fã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\82\92èµ·å\8b\95ã\81\97ã\81\9fã\82·ã\82°ã\83\8aã\83«è\87ªèº«ã\81¯ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\83\96ã\83­ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bã\80\82
-\fBSIGKILL\fP か \fBSIGSTOP\fP をブロックしようとした場合には、黙って無視される。
+\fIsv_handler\fP ã\81«ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92æ\8c\87å®\9aã\81\97ã\81\9få ´å\90\88ã\80\81 \fIsv_mask\fP
\81¯ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå®\9fè¡\8c中ã\81«ã\83\96ã\83­ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bã\81¹ã\81\8dã\82·ã\82°ã\83\8aã\83«ã\81®ã\83\9eã\82¹ã\82¯ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ã\81¾ã\81\9fã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92èµ·å\8b\95ã\81\97ã\81\9fã\82·ã\82°ã\83\8aã\83«è\87ªèº«ã\81¯ã\83\96ã\83­ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bã\80\82 \fBSIGKILL\fP ã\81\8b
+\fBSIGSTOP\fP をブロックしようとした場合には、黙って無視される。
 
-\fIsv_handler\fP にシグナルハンドラのアドレスを指定した場合、 \fIsv_flags\fP
-フィールドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドには、0 か、以下のフラグを 1個以上指定できる:
+\fIsv_handler\fP ã\81«ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92æ\8c\87å®\9aã\81\97ã\81\9få ´å\90\88ã\80\81 \fIsv_flags\fP
\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå\91¼ã\81°ã\82\8cã\81\9fé\9a\9bã\81®æ\8c\99å\8b\95ã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\81¯ã\80\810 ã\81\8bã\80\81以ä¸\8bã\81®ã\83\95ã\83©ã\82°ã\82\92 1å\80\8b以ä¸\8aæ\8c\87å®\9aã\81§ã\81\8dã\82\8b:
 .TP 
 \fBSV_INTERRUPT\fP
\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81\8cå\81\9c止中ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92中æ\96­ã\81\97ã\81\9få ´å\90\88ã\80\81 ã\83\8fã\83³ã\83\89ã\83©ã\81\8bã\82\89復帰ã\81\97ã\81¦ã\82\82ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯å\86\8dé\96\8bã\81\95ã\82\8cã\81\9aã\80\81 ã\82¨ã\83©ã\83¼ \fBEINTR\fP ã\81§å¤±æ\95\97ã\81\99ã\82\8bã\80\82
-このフラグを指定しなかった場合、システムコールは デフォルトで再開される。
\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå\81\9c止中ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92中æ\96­ã\81\97ã\81\9få ´å\90\88ã\80\81 ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8bã\82\89復帰ã\81\97ã\81¦ã\82\82ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯å\86\8dé\96\8bã\81\95ã\82\8cã\81\9aã\80\81 ã\82¨ã\83©ã\83¼ \fBEINTR\fP
\81§å¤±æ\95\97ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§å\86\8dé\96\8bã\81\95ã\82\8cã\82\8bã\80\82
 .TP 
 \fBSV_RESETHAND\fP
-シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 このフラグを指定しなかった場合、もう一度 \fBsigvec\fP()
-を呼び出して明示的に削除されるか、プロセスが \fBexecve\fP(2)  を実行するまで、ハンドラは設定されたままとなる。
\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92å\91¼ã\81³å\87ºã\81\99å\89\8dã\81«ã\82·ã\82°ã\83\8aã\83«ã\81®å\8b\95ä½\9cã\82\92 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81«ã\83ªã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81ã\82\82ã\81\86ä¸\80度 \fBsigvec\fP()
\82\92å\91¼ã\81³å\87ºã\81\97ã\81¦æ\98\8e示ç\9a\84ã\81«å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bã\81\8bã\80\81ã\83\97ã\83­ã\82»ã\82¹ã\81\8c \fBexecve\fP(2)  ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81¾ã\81§ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯è¨­å®\9aã\81\95ã\82\8cã\81\9fã\81¾ã\81¾ã\81¨ã\81ªã\82\8bã\80\82
 .TP 
 \fBSV_ONSTACK\fP
-代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シグナルスタックは廃止された関数 \fBsigstack\fP()
+代æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ä¸\8aã\81§ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92å®\9fè¡\8cã\81\99ã\82\8b (æ­´å\8f²ç\9a\84ã\81«ã\80\81BSD ã\81§ã\81¯ä»£æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ã\81¯å»\83æ­¢ã\81\95ã\82\8cã\81\9fé\96¢æ\95° \fBsigstack\fP()
 を使って設定する。POSIX では、代わりに \fBsigaltstack\fP(2)  を使用する)。
 .PP
-関数 \fBsigmask\fP()  は \fIsignum\fP に対する「シグナルマスク」を構成して返す。 例えば、以下のようなコードを使うと、
+マクロ \fBsigmask\fP()  は \fIsignum\fP に対する「シグナルマスク」を構成して返す。 例えば、以下のようなコードを使うと、
 \fBsigvec\fP()  に渡す \fIvec.sv_mask\fP を初期化できる。
 .nf
 
-    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);
+    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);
                 /* Block SIGQUIT and SIGABRT during
                    handler execution */
 .fi
@@ -117,9 +124,18 @@ struct sigvec {
 
 \fBsigblock\fP()  と \fBsigsetmask\fP()  は変更前のシグナルマスクを返す。
 
-\fBsigmask\fP()  関数は \fIsignum\fP のシグナルマスクを返す。
+\fBsigmask\fP() マクロは \fIsignum\fP のシグナルマスクを返す。
 .SH エラー
 \fBsigaction\fP(2)  と \fBsigprocmask\fP(2)  の「エラー」の節を参照。
+.SH 属性
+.SS "マルチスレッディング (pthreads(7) 参照)"
+関数 \fBsigvec\fP(), \fBsigblock\fP(), \fBsigsetmask\fP(), \fBsiggetmask\fP() はスレッドセーフである。
+.LP
+\fBsigmask\fP() マクロはスレッドセーフである。
+.SH バージョン
+バージョン 2.21 以降では、 GNU C ライブラリはもはや \fBsigvec\fP() 関数を ABI の一部として公開しなくなった。
+(後方互換性を保証するために、glibc のシンボルのバージョン付け機構により、
+古いバージョンのライブラリとリンクされたバイナリに対してはこのインターフェースが引き続き公開されている。)
 .SH 準拠
 これらの関数のうち \fBsiggetmask\fP()  以外の全ては 4.3BSD にあった。 \fBsiggetmask\fP()  の出自ははっきりしない。
 これらの関数は廃止予定であり、新しいプログラムでは使用しないこと。
@@ -134,6 +150,5 @@ BSD と System V のどちらのシステムでも シグナルを待つため
 \fBkill\fP(2), \fBpause\fP(2), \fBsigaction\fP(2), \fBsignal\fP(2), \fBsigprocmask\fP(2),
 \fBraise\fP(3), \fBsigpause\fP(3), \fBsigset\fP(3), \fBsignal\fP(7)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.40 の一部
-である。プロジェクトの説明とバグ報告に関する情報は
-http://www.kernel.org/doc/man\-pages/ に書かれている。
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部である。
+プロジェクトの説明とバグ報告に関する情報は \%http://www.kernel.org/doc/man\-pages/ に書かれている。