OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man2 / getcontext.2
index da1533c..6c1d10f 100644 (file)
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
 .\"
-.\" Japanese Version Copyright (c) 2001 NAKANO Takeo all rights reserved.
-.\" Translated Sat Dec 15 2001 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
-.\" Updated 2009-04-13, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.20
+.\"*******************************************************************
 .\"
-.TH GETCONTEXT 2 2009-03-15 "Linux" "Linux Programmer's Manual"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH GETCONTEXT 2 2009\-03\-15 Linux "Linux Programmer's Manual"
 .SH 名前
 getcontext, setcontext \- ユーザコンテキストを取得/設定する
 .SH 書式
-.B #include <ucontext.h>
+\fB#include <ucontext.h>\fP
 .sp
-.BI "int getcontext(ucontext_t *" ucp );
+\fBint getcontext(ucontext_t *\fP\fIucp\fP\fB);\fP
 .br
-.BI "int setcontext(const ucontext_t *" ucp );
+\fBint setcontext(const ucontext_t *\fP\fIucp\fP\fB);\fP
 .SH 説明
-System V 的な環境では、
-\fImcontext_t\fP および \fIucontext_t\fP という 2 つの型と、
-.BR getcontext (),
-.BR setcontext (),
-.BR makecontext (3),
-.BR swapcontext (3)
-という 4 つの関数が
-.I <ucontext.h>
-で定義されており、あるプロセス内部で制御下にある複数のスレッド間で、
+System V 的な環境では、 \fImcontext_t\fP および \fIucontext_t\fP という 2 つの型と、
+\fBgetcontext\fP(), \fBsetcontext\fP(), \fBmakecontext\fP(3), \fBswapcontext\fP(3)  という
+4 つの関数が \fI<ucontext.h>\fP で定義されており、あるプロセス内部で制御下にある複数のスレッド間で、
 ユーザレベルのコンテキスト切替えができるようになっている。
 .LP
-\fImcontext_t\fP 型はマシン依存で、外部からは隠蔽されている。
-\fIucontext_t\fP 型は構造体で、少なくとも以下の 4 つのフィールドを持つ。
+\fImcontext_t\fP 型はマシン依存で、外部からは隠蔽されている。 \fIucontext_t\fP 型は構造体で、少なくとも以下の 4
+つのフィールドを持つ。
 .in +4
 .nf
 
@@ -60,117 +55,47 @@ typedef struct ucontext {
 
 .fi
 .in
-\fIsigset_t\fP と \fIstack_t\fP は
-.I <signal.h>
-で定義されている。
-ここで \fIuc_link\fP は、
-現在のコンテキストが終了したとき、
-続いて切り替わるコンテキストへのポインタである
-(現在のコンテキストが
-.BR makecontext (3)
-で生成されたものの場合)。
-\fIuc_sigmask\fP はこのコンテキストでブロックされている
-シグナル群である
-.RB ( sigprocmask (2)
-を見よ)。
-\fIuc_stack\fP はこのコンテキストが用いているスタックである
-.RB ( signalstack (2)
-を見よ)。
-\fIuc_mcontext\fP は保存されているコンテキストの
-マシン特有の表現形式であり、
-ここには呼び出したスレッドのマシンレジスタが格納される。
+\fIsigset_t\fP と \fIstack_t\fP は \fI<signal.h>\fP で定義されている。 ここで \fIuc_link\fP は、
+現在のコンテキストが終了したとき、 続いて切り替わるコンテキストへのポインタである (現在のコンテキストが \fBmakecontext\fP(3)
+で生成されたものの場合)。 \fIuc_sigmask\fP はこのコンテキストでブロックされている シグナル群である (\fBsigprocmask\fP(2)
+を見よ)。 \fIuc_stack\fP はこのコンテキストが用いているスタックである (\fBsignalstack\fP(2)  を見よ)。
+\fIuc_mcontext\fP は保存されているコンテキストの マシン特有の表現形式であり、 ここには呼び出したスレッドのマシンレジスタが格納される。
 .LP
-.BR getcontext ()
-関数は、
-ポインタ \fIucp\fP が指す構造体を、
-現在アクティブなコンテキストに初期化する。
+\fBgetcontext\fP()  関数は、 ポインタ \fIucp\fP が指す構造体を、 現在アクティブなコンテキストに初期化する。
 .LP
-.BR setcontext ()
-関数は、ポインタ
-\fIucp\fP が指すユーザコンテキストをリストアする。
-呼び出しに成功すると返らない。
-このコンテキストは、以前に
-.BR getcontext ()
-または
-.BR makecontext (3)
-で得られたものか、
+\fBsetcontext\fP()  関数は、ポインタ \fIucp\fP が指すユーザコンテキストをリストアする。 呼び出しに成功すると返らない。
+このコンテキストは、以前に \fBgetcontext\fP()  または \fBmakecontext\fP(3)  で得られたものか、
 あるいはシグナルの第三引数として与えられたものになる。
 .LP
-コンテキストが
-.BR getcontext ()
-の呼び出しによって得られていたものの場合は、
+コンテキストが \fBgetcontext\fP()  の呼び出しによって得られていたものの場合は、
 プログラムはこの呼び出しから返った直後からのように実行を継続する。
 .LP
-コンテキストが
-.BR makecontext (3)
-の呼び出しによって得られていたものの場合は、
-プログラムの実行はその
-.BR makecontext (3)
-呼び出しの第二引数で指定された関数 \fIfunc\fP
-を呼び出すかたちで継続する。
-\fIfunc\fP から返ると、
-.BR makecontext (3)
-呼び出しの第一引数で指定されていた
-\fIucp\fP 構造体の \fIuc_link\fP メンバで継続する。
-このメンバが NULL だった場合は、そのスレッドは終了する。
+コンテキストが \fBmakecontext\fP(3)  の呼び出しによって得られていたものの場合は、 プログラムの実行はその
+\fBmakecontext\fP(3)  呼び出しの第二引数で指定された関数 \fIfunc\fP を呼び出すかたちで継続する。 \fIfunc\fP から返ると、
+\fBmakecontext\fP(3)  呼び出しの第一引数で指定されていた \fIucp\fP 構造体の \fIuc_link\fP メンバで継続する。 このメンバが
+NULL だった場合は、そのスレッドは終了する。
 .LP
-コンテキストがシグナルハンドラの呼び出しによって得られていたものの場合は、
-古い標準によれば
-「プログラムの実行はシグナルによって割り込まれた命令の次の命令から継続される」。
-しかしこの文は SUSv2 で削除されたので、
+コンテキストがシグナルハンドラの呼び出しによって得られていたものの場合は、 古い標準によれば
+「プログラムの実行はシグナルによって割り込まれた命令の次の命令から継続される」。 しかしこの文は SUSv2 で削除されたので、
 現在の判断は「結果は定義されていない」である。
 .SH 返り値
-成功すると、
-.BR getcontext ()
-は 0 を返し、
-.BR setcontext ()
-は返らない。
-失敗すると、両者とも \-1 を返し、\fIerrno\fP をエラーに応じて設定する。
+成功すると、 \fBgetcontext\fP()  は 0 を返し、 \fBsetcontext\fP()  は返らない。 失敗すると、両者とも \-1
+を返し、\fIerrno\fP をエラーに応じて設定する。
 .SH エラー
 定義されていない。
 .SH 準拠
-SUSv2, POSIX.1-2001.
-POSIX.1-2008 では、移植性の問題から
-.BR getcontext ()
-の仕様が削除された。
-代わりに、アプリケーションを POSIX スレッドを使って書き直すことが
-推奨されている。
+SUSv2, POSIX.1\-2001.  POSIX.1\-2008 では、移植性の問題から \fBgetcontext\fP()  の仕様が削除された。
+代わりに、アプリケーションを POSIX スレッドを使って書き直すことが 推奨されている。
 .SH 注意
-このメカニズムの最古の実装は、
-.BR setjmp (3)/ longjmp (3)
-機構であった。
-これらにはシグナルコンテキストの取り扱いが定義されていなかったので、
-次の段階では
-.BR sigsetjmp (3)/ siglongjmp (3)
-のペアが現われた。
-現在の機構ではずっと細かな制御ができる。
-一方
-.BR getcontext ()
-から返ったとき、
-これが最初の呼び出しであったか、
-それとも
-.BR setcontext ()
-呼び出しからのものであるかを
-区別する容易な方法がなくなってしまった。
-ユーザは「しおり」機構を自分で作らなければならない。
-レジスタ変数は (レジスタはリストアされてしまうので) これをやってくれない。
+このメカニズムの最古の実装は、 \fBsetjmp\fP(3)/\fBlongjmp\fP(3)  機構であった。
+これらにはシグナルコンテキストの取り扱いが定義されていなかったので、 次の段階では \fBsigsetjmp\fP(3)/\fBsiglongjmp\fP(3)
+のペアが現われた。 現在の機構ではずっと細かな制御ができる。 一方 \fBgetcontext\fP()  から返ったとき、 これが最初の呼び出しであったか、
+それとも \fBsetcontext\fP()  呼び出しからのものであるかを 区別する容易な方法がなくなってしまった。
+ユーザは「しおり」機構を自分で作らなければならない。 レジスタ変数は (レジスタはリストアされてしまうので) これをやってくれない。
 .LP
-シグナルが発生すると、
-現在のユーザコンテキストは保存され、
-シグナルハンドラ用のコンテキストがカーネルによって生成される。
-今後はハンドラに
-.BR longjmp (3)
-を使わせないこと:
-この関数のコンテキスト下での動作は定義されていない。
-代わりに
-.BR siglongjmp (3)
-か
-.BR setcontext ()
-を使うこと。
+シグナルが発生すると、 現在のユーザコンテキストは保存され、 シグナルハンドラ用のコンテキストがカーネルによって生成される。 今後はハンドラに
+\fBlongjmp\fP(3)  を使わせないこと: この関数のコンテキスト下での動作は定義されていない。 代わりに \fBsiglongjmp\fP(3)  か
+\fBsetcontext\fP()  を使うこと。
 .SH 関連項目
-.BR sigaction (2),
-.BR sigaltstack (2),
-.BR sigprocmask (2),
-.BR longjmp (3),
-.BR makecontext (3),
-.BR sigsetjmp (3)
+\fBsigaction\fP(2), \fBsigaltstack\fP(2), \fBsigprocmask\fP(2), \fBlongjmp\fP(3),
+\fBmakecontext\fP(3), \fBsigsetjmp\fP(3)