OSDN Git Service

Update draft for LDP 3.67
[linuxjm/LDP_man-pages.git] / draft / man2 / select.2
index d3914d3..cee10fb 100644 (file)
@@ -57,7 +57,7 @@
 .\" Updated 2012-05-30, Akihiro MOTOKI <amotoki@gmail.com>
 .\" Updated 2013-05-06, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.TH SELECT 2 2013\-09\-04 Linux "Linux Programmer's Manual"
+.TH SELECT 2 2014\-01\-31 Linux "Linux Programmer's Manual"
 .SH 名前
 select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- 同期 I/O の多重化
 .SH 書式
@@ -129,13 +129,19 @@ glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参
 .PP
 \fInfds\fP は 3 つの集合に含まれるファイルディスクリプタの最大値に 1 を足したものである。
 .PP
-The \fItimeout\fP argument specifies the interval that \fBselect\fP()  should
-block waiting for a file descriptor to become ready.  This interval will be
-rounded up to the system clock granularity, and kernel scheduling delays
-mean that the blocking interval may overrun by a small amount.  If both
-fields of the \fItimeval\fP structure are zero, then \fBselect\fP()  returns
-immediately.  (This is useful for polling.)  If \fItimeout\fP is NULL (no
-timeout), \fBselect\fP()  can block indefinitely.
+\fItimeout\fP 引き数は、 \fBselect\fP() がファイルディスクリプタが ready になるのを待って停止する時間を指定する。
+呼び出しは以下のいずれかになるまで停止する。
+.IP * 3
+ファイルディスクリプタが利用可能になる。
+.IP *
+システムコールがシグナルハンドラにより割り込まれた。
+.IP *
+タイムアウト時間が満了した。
+.PP
+この \fItimeout\fP 時間はシステムクロックの粒度に切り上げられ、
+カーネルのスケジューリング遅延により少しだけ長くなる可能性がある点に注意すること。 \fItimeval\fP 構造体の両方のフィールドが 0 の場合、
+\fBselect\fP() はすぐに復帰する (この機能はポーリング (polling) を行うのに便利である)。 \fItimeout\fP に NULL
+(タイムアウトなし) が指定されると、 \fBselect\fP() は無期限に停止 (block) する。
 .PP
 \fIsigmask\fP は、シグナルマスク (\fBsigprocmask\fP(2)  を参照) へのポインタである。 \fIsigmask\fP が NULL
 でない場合、 \fBpselect\fP()  は \fIsigmask\fP が指しているシグナルマスクで現在のシグナルマスクを置き換えてから、 "select"
@@ -204,7 +210,7 @@ Linux では、 \fBselect\fP()  は \fItimeout\fP を変更し、残りの停止
 成功した場合、 \fBselect\fP()  と \fBpselect\fP()  は更新された 3 つのディスクリプタ集合に含まれている
 ファイルディスクリプタの数 (つまり、 \fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP 中の 1 になっているビットの総数)
 を返す。 何も起こらずに時間切れになった場合、 ディスクリプタの数は 0 になることもある。 エラーならば \-1 を返し、 \fIerrno\fP
-に適切な値が設定される; 集合と \fItimeout\fP は未定義となるので、エラーが起こった後はそれらの内容を信頼してはならない
+にエラーを示す値が設定される; ファイルディスクリプタ集合は変更されず、 \fItimeout\fP は不定となる
 .SH エラー
 .TP 
 \fBEBADF\fP
@@ -224,8 +230,8 @@ Linux では、 \fBselect\fP()  は \fItimeout\fP を変更し、残りの停止
 でエミュレートされていた (「バグ」の章を参照)。
 .SH 準拠
 \fBselect\fP()  は POSIX.1\-2001 と 4.4BSD (\fBselect\fP()  は 4.2BSD で最初に登場した) に準拠する。
-BSD ソケット層のクローンをサポートしている非 BSD システム (System V 系も含む) との間でだいたい移植性がある。しかし System
-V 系では たいがい timeout 変数を exit の前にセットするが、 BSD 系ではそうでないので注意すること。
+BSD ソケット層のクローンをサポートしている非 BSD システム (System\ V 系も含む) との間でだいたい移植性がある。しかし
+System\ V 系では たいがい timeout 変数を exit の前にセットするが、 BSD 系ではそうでないので注意すること。
 .PP
 \fBpselect\fP()  は POSIX.1g と POSIX.1\-2001 で定義されている。
 .SH 注意
@@ -363,6 +369,6 @@ main(void)
 
 考察と使用例の書かれたチュートリアルとして、 \fBselect_tut\fP(2)  がある。
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.54 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。