OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man2 / poll.2
index c6ae147..c4fb2b2 100644 (file)
 .\" Updated 2006-04-16, Akihiro MOTOKI, Catch up to LDP man-pages 2.28
 .\" Updated 2006-07-23, Akihiro MOTOKI, Catch up to LDP man-pages 2.36
 .\"
-.\"WORD:       descriptor              ¥Ç¥£¥¹¥¯¥ê¥×¥¿
+.\"WORD:       descriptor              ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿
 .\"
 .TH POLL 2 2010-09-20 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-poll, ppoll \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤ª¤±¤ë¥¤¥Ù¥ó¥È¤òÂÔ¤Ä
-.SH ½ñ¼°
+.SH 名前
+poll, ppoll \- ファイルディスクリプタにおけるイベントを待つ
+.SH 書式
 .nf
 .B #include <poll.h>
 .sp
 .BI "int poll(struct pollfd *" fds ", nfds_t " nfds ", int " timeout );
 .sp
-.BR "#define _GNU_SOURCE" "         /* feature_test_macros(7) »²¾È */"
+.BR "#define _GNU_SOURCE" "         /* feature_test_macros(7) 参照 */"
 .B #include <poll.h>
 .sp
 .BI "int ppoll(struct pollfd *" fds ", nfds_t " nfds ", "
 .BI "        const struct timespec *" timeout_ts ", const sigset_t *" sigmask );
 .fi
-.SH ÀâÌÀ
+.SH 説明
 .BR poll ()
-¤Ï
+は
 .BR select (2)
-¤ÈƱÍͤλŻö¤ò¹Ô¤¦¡¢¤Ä¤Þ¤ê¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Î¤¤¤º¤ì¤«°ì¤Ä¤¬
-I/O ¤ò¼Â¹Ô²Äǽ¤Ê¾õÂ֤ˤʤë¤Î¤òÂԤġ£
+と同様の仕事を行う、つまり、ファイルディスクリプタ集合のいずれか一つが
+I/O を実行可能な状態になるのを待つ。
 
-´Æ»ë¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿½¸¹ç¤Ï¡¢
+監視するファイルディスクリプタ集合は、
 .I fds
-°ú¤­¿ô¤Ç»ØÄꤹ¤ë¡£
+引き数で指定する。
 .I fds
-¤Ï¡¢°Ê²¼¤Î·¿¤Î¹½Â¤ÂΤÎÇÛÎó¤Ç¤¢¤ë¡£
+は、以下の型の構造体の配列である。
 .in +4n
 .nf
 
@@ -79,139 +79,139 @@ struct pollfd {
 .fi
 .PP
 .I nfds
-¤Ë¤Ï¡¢
+には、
 .I fds
-ÇÛÎó¤ÎÍ×ÁÇ¿ô¤ò»ØÄꤹ¤ë¡£
+配列の要素数を指定する。
 
-¹½Â¤ÂΤÎ
+構造体の
 .I fd
-¤Ë¤Ï¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÆþ¤ì¤ë¡£
+にはオープンしたファイルのファイルディスクリプタを入れる。
 
-¹½Â¤ÂΤÎ
+構造体の
 .I events
-Í×ÁǤÏÆþÎϥѥé¥á¡¼¥¿¤Ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¶½Ì£¤ò»ý¤Ã¤Æ¤¤¤ë¥¤¥Ù¥ó¥È¤Î
-¥Ó¥Ã¥È¥Þ¥¹¥¯¤ò»ØÄꤹ¤ë¡£
+要素は入力パラメータで、アプリケーションが興味を持っているイベントの
+ビットマスクを指定する。
 
 .I revents
-Í×ÁǤϽÐÎϥѥé¥á¡¼¥¿¤Ç¡¢¼ÂºÝ¤Ëµ¯¤³¤Ã¤¿¥¤¥Ù¥ó¥È¤¬¥«¡¼¥Í¥ë¤Ë¤è¤êÀßÄꤵ¤ì¤ë¡£
+要素は出力パラメータで、実際に起こったイベントがカーネルにより設定される。
 .I revents
-¤ÇÊÖ¤µ¤ì¤ë¥Ó¥Ã¥ÈÎó¤Ë¤Ï¡¢
+で返されるビット列には、
 .I events
-¤Ç»ØÄꤷ¤¿¤â¤Î¤Î¤É¤ì¤«¡¢¤â¤·¤¯¤Ï
+で指定したもののどれか、もしくは
 .BR POLLERR ,
 .BR POLLHUP ,
 .B POLLNVAL
-¤Î¤¦¤Á¤Î°ì¤Ä¤¬´Þ¤Þ¤ì¤ë
+のうちの一つが含まれる
 .RB ( POLLERR ,
 .BR POLLHUP ,
 .B POLLNVAL
-¤Î 3¤Ä¤Î¥Ó¥Ã¥È¤Ï
+の 3つのビットは
 .I events
-¤Ë»ØÄꤷ¤Æ¤â°ÕÌ£¤¬¤Ê¤¯¡¢Âбþ¤·¤¿¾õÂÖ¤¬¿¿¤Î¾ì¹ç¤Ë
+に指定しても意味がなく、対応した状態が真の場合に
 .I revents
-¤ËÀßÄꤵ¤ì¤ë)¡£
+に設定される)。
 
-¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤âÍ׵ᤷ¤¿¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤Æ¤ª¤é¤º¡¢
-¥¨¥é¡¼¤âµ¯¤³¤é¤Ê¤¤¾ì¹ç¡¢
+どのファイルディスクリプタにも要求したイベントが発生しておらず、
+エラーも起こらない場合、
 .BR poll ()
-¤Ï¥¤¥Ù¥ó¥È¤Î¤¦¤Á¤¤¤º¤ì¤«°ì¤Ä¤¬È¯À¸¤¹¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£
+はイベントのうちいずれか一つが発生するまで停止 (block) する。
 
 .I timeout
-°ú¤­¿ô¤Ï
+引き数は
 .BR poll ()
-¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤òÀßÄꤹ¤ë¤â¤Î¤Ç¡¢¥ß¥êÉÃñ°Ì¤Ç»ØÄꤹ¤ë¡£
+が停止する時間の上限を設定するもので、ミリ秒単位で指定する。
 .I timeout
-¤ËÉé¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢¥¿¥¤¥à¥¢¥¦¥È»þ´Ö¤¬Ìµ¸Â¤È¤Ê¤ë¡£
+に負の値を指定すると、タイムアウト時間が無限となる。
 
 .I events
-¤Ë»ØÄꤷ¤¿¤ê¡¢
+に指定したり、
 .I revents
-¤ÇÊÖ¤µ¤ì¤ë¥Ó¥Ã¥È¤Ï \fI<poll.h>\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
+で返されるビットは \fI<poll.h>\fP で定義されている:
 .RS
 .TP
 .B POLLIN
-Æɤ߽Ф·²Äǽ¤Ê¥Ç¡¼¥¿¤¬¤¢¤ë¡£
+読み出し可能なデータがある。
 .TP
 .B POLLPRI
-Æɤ߽Ф·²Äǽ¤Ê¶ÛµÞ¥Ç¡¼¥¿ (urgent data) ¤¬¤¢¤ë
-(Î㤨¤Ð¡¢TCP ¥½¥±¥Ã¥È¤ÎÂÓ°è³° (out-of-band data) ¥Ç¡¼¥¿¤ò¼õ¿®¤·¤¿¾ì¹ç¤ä¡¢
-¥Ñ¥±¥Ã¥È¥â¡¼¥É¤Îµ¼»÷üËö¤Î¥Þ¥¹¥¿¤¬¥¹¥ì¡¼¥Ö¦¤ÎÊѲ½¤ò¸«¤Ä¤±¤¿¤È¤­)¡£
+読み出し可能な緊急データ (urgent data) がある
+(例えば、TCP ソケットの帯域外 (out-of-band data) データを受信した場合や、
+パケットモードの擬似端末のマスタがスレーブ側の変化を見つけたとき)。
 .TP
 .B POLLOUT
-½ñ¤­¹þ¤ß¤¬Ää»ß (block) ¤·¤Ê¤¤¾õÂ֤Ǥ¢¤ë¡£
+書き込みが停止 (block) しない状態である。
 .TP
-.BR POLLRDHUP " (Linux 2.6.17 °Ê¹ß)"
-¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤Î¾ü¤¬¡¢¥³¥Í¥¯¥·¥ç¥ó¤ò close ¤·¤¿¤«¡¢
-¥³¥Í¥¯¥·¥ç¥ó¤Î½ñ¤­¹þ¤ß¦¤ò shutdown ¤·¤¿¡£
-¤³¤ÎÄêµÁ¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢
-(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë)
+.BR POLLRDHUP " (Linux 2.6.17 以降)"
+ストリームソケットの他端が、コネクションを close したか、
+コネクションの書き込み側を shutdown した。
+この定義を有効にするには、
+(「どの」ヘッダファイルをインクルードするよりも前に)
 .B _GNU_SOURCE
-µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+機能検査マクロを定義しなければならない。
 .TP
 .B POLLERR
-¥¨¥é¡¼¾õÂÖ (½ÐÎϤξì¹ç¤Î¤ß)¡£
+エラー状態 (出力の場合のみ)。
 .TP
 .B POLLHUP
-¥Ï¥ó¥°¥¢¥Ã¥×¤·¤¿ (½ÐÎϤξì¹ç¤Î¤ß)¡£
+ハングアップした (出力の場合のみ)。
 .TP
 .B POLLNVAL
-ÉÔÀµ¤ÊÍ×µá:
+不正な要求:
 .I fd
-¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤ (½ÐÎϤξì¹ç¤Î¤ß)¡£
+がオープンされていない (出力の場合のみ)。
 .RE
 .PP
 .B _XOPEN_SOURCE
-¤òÄêµÁ¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ë¤Ï¡¢°Ê²¼¤ÎÄêµÁ¤â¹Ô¤ï¤ì¤ë¡£
-¤¿¤À¤·¡¢¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ë¥Ó¥Ã¥È°Ê¾å¤Î¾ðÊó¤¬ÆÀ¤é¤ì¤ëÌõ¤Ç¤Ï¤Ê¤¤¡£
+を定義してコンパイルした場合には、以下の定義も行われる。
+ただし、上記のリストにあるビット以上の情報が得られる訳ではない。
 .RS
 .TP
 .B POLLRDNORM
 .B POLLIN
-¤ÈƱ¤¸¡£
+と同じ。
 .TP
 .B POLLRDBAND
-Í¥ÀèÂÓ°è¥Ç¡¼¥¿ (priority band data) ¤¬Æɤ߽Ф·²Äǽ¤Ç¤¢¤ë
-(ÉáÄ̤ϠLinux ¤Ç¤Ï»ÈÍѤµ¤ì¤Ê¤¤)¡£
+優先帯域データ (priority band data) が読み出し可能である
+(普通は Linux では使用されない)。
 .\" POLLRDBAND is used in the DECnet protocol.
 .TP
 .B POLLWRNORM
 .B POLLOUT
-¤ÈƱ¤¸¡£
+と同じ。
 .TP
 .B POLLWRBAND
-Í¥ÀèÂÓ°è¥Ç¡¼¥¿ (priority data) ¤¬½ñ¤­¹þ¤ß²Äǽ¤Ç¤¢¤ë¡£
+優先帯域データ (priority data) が書き込み可能である。
 .RE
 .PP
-Linux ¤Ç¤Ï
+Linux では
 .B POLLMSG
-¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£
+も定義されているが、使用されていない。
 .SS ppoll()
 .BR poll ()
-¤È
+と
 .BR ppoll ()
-¤Î´Ø·¸¤Ï
+の関係は
 .BR select (2)
-¤È
+と
 .BR pselect (2)
-¤Î´Ø·¸¤ÈƱ¤¸¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë:
+の関係と同じようなものである:
 .BR pselect (2)
-¤ÈƱÍͤˡ¢
+と同様に、
 .BR ppoll ()
-¤ò»È¤¦¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¾õÂÖÊѲ½
-¤â¤·¤¯¤Ï¥·¥°¥Ê¥ë¤ÎÊ᪤ò°ÂÁ´¤ËÂԤĤ³¤È¤¬¤Ç¤­¤ë¡£
+を使うと、アプリケーションはファイルディスクリプタの状態変化
+もしくはシグナルの捕捉を安全に待つことができる。
 .PP
 .I timeout
-°ú¤­¿ô¤ÎÀºÅ٤ΰ㤤¤ò½ü¤¯¤È¡¢°Ê²¼¤Î
+引き数の精度の違いを除くと、以下の
 .BR ppoll ()
-¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢
+の呼び出しは、
 .nf
 
     ready = ppoll(&fds, nfds, timeout_ts, &sigmask);
 
 .fi
-¼¡¤Î¥³¡¼¥ë¤ò
+次のコールを
 .I atomic
-¤Ë¼Â¹Ô¤¹¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£
+に実行するのと等価である。
 .nf
 
     sigset_t origmask;
@@ -224,27 +224,27 @@ Linux 
     sigprocmask(SIG_SETMASK, &origmask, NULL);
 .fi
 .PP
-¤Ê¤¼
+なぜ
 .BR ppoll ()
-¤¬É¬ÍפʤΤ«¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤Ï
+が必要なのかについての説明は
 .BR pselect (2)
-¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£
+の説明を参照のこと。
 
 .I sigmask
-°ú¤­¿ô¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÁàºî¤Ï¹Ô¤ï¤ì¤Ê¤¤
-(¤·¤¿¤¬¤Ã¤Æ¡¢
+引き数に NULL が指定された場合、シグナルマスクの操作は行われない
+(したがって、
 .BR ppoll ()
-¤Î
+の
 .BR poll ()
-¤È¤Î°ã¤¤¤Ï
+との違いは
 .I timeout
-°ú¤­¿ô¤ÎÀºÅÙ¤À¤±¤È¤Ê¤ë)¡£
+引き数の精度だけとなる)。
 
 .I timeout
-°ú¤­¿ô¤Ï
+引き数は
 .BR ppoll ()
-¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£
-¤³¤Î°ú¤­¿ô¤Ë¤Ï°Ê²¼¤Î·¿¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò»ØÄꤹ¤ë¡£
+が停止する時間の上限を指定するものである。
+この引き数には以下の型の構造体へのポインタを指定する。
 .in +4n
 .nf
 
@@ -256,86 +256,86 @@ struct timespec {
 .in
 
 .I timeout_ts
-¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢
+に NULL が指定された場合、
 .B ppoll
-¤Ï̵¸Â¤ËÄä»ß¤¹¤ë¤³¤È¤¬¤¢¤êÆÀ¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¤ÏÀµ¤Î¿ô¤òÊÖ¤¹¡£¤³¤Î¿ô¤Ï 0 °Ê³°¤Î
+は無限に停止することがあり得る。
+.SH 返り値
+成功した場合は正の数を返す。この数は 0 以外の
 .I revents
-Í×ÁǤò»ý¤Ä¹½Â¤ÂΤοô¤Ç¤¢¤ë (Ê̤θÀ¤¤Êý¤ò¤¹¤ë¤È¡¢¤³¤ì¤é¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿
-¤Ë¤Ï¥¤¥Ù¥ó¥È¤«¥¨¥é¡¼Êó¹ð¤¬¤¢¤ë)¡£
-ÃÍ 0 ¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤È¤Ê¤ê¡¢¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤â¥¤¥Ù¥ó¥È¤¬
-ȯÀ¸¤·¤Ê¤«¤Ã¤¿¤³¤È¤ò¼¨¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢
+è¦\81ç´ ã\82\92æ\8c\81ã\81¤æ§\8bé\80 ä½\93ã\81®æ\95°ã\81§ã\81\82ã\82\8b (å\88¥ã\81®è¨\80ã\81\84æ\96¹ã\82\92ã\81\99ã\82\8bã\81¨ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿
+にはイベントかエラー報告がある)。
+値 0 は、タイムアウトとなり、どのファイルディスクリプタでもイベントが
+発生しなかったことを示す。エラーの場合は \-1 が返され、
 .I errno
-¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
+が適切に設定される。
+.SH ã\82¨ã\83©ã\83¼
 .TP
 .B EFAULT
-°ú¤­¿ô¤È¤·¤Æ»ØÄꤷ¤¿ÇÛÎ󤬡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë
-´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£
+引き数として指定した配列が、呼び出したプロセスのアドレス空間に
+含まれていない。
 .TP
 .B EINTR
-Í׵ᤵ¤ì¤¿¥¤¥Ù¥ó¥È¤Î¤É¤ì¤«¤¬µ¯¤³¤ëÁ°¤Ë¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¡£
+要求されたイベントのどれかが起こる前にシグナルが発生した。
 .BR signal (7)
-»²¾È¡£
+参照。
 .TP
 .B EINVAL
 .I nfds
-¤ÎÃͤ¬
+の値が
 .B RLIMIT_NOFILE
-¤òĶ¤¨¤¿¡£
+を超えた。
 .TP
 .B ENOMEM
-¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë¤ò³ÎÊݤ¹¤ë¤¿¤á¤Î¥á¥â¥ê¤¬¤Ê¤¤¡£
-.SH ¥Ð¡¼¥¸¥ç¥ó
+ファイルディスクリプタ・テーブルを確保するためのメモリがない。
+.SH バージョン
 .BR poll ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.1.23 ¤ÇƳÆþ¤µ¤ì¤¿¡£
+システムコールは Linux 2.1.23 で導入された。
 .BR poll ()
-¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥ë¤Ï libc 5.4.28 ¤«¤éƳÆþ¤µ¤ì¤¿
-(¤³¤ì¤Ï¥«¡¼¥Í¥ë¤¬
+ライブラリ・コールは libc 5.4.28 から導入された
+(これはカーネルが
 .BR poll ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë
+システムコールをサポートしていない場合に
 .BR select (2)
-¤ò»ÈÍѤ·¤Æ¥¨¥ß¥å¥ì¡¼¥È¤ò¹Ô¤¦)¡£
+を使用してエミュレートを行う)。
 
 .BR ppoll ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï ¥«¡¼¥Í¥ë 2.6.16 ¤Ç Linux ¤ËÄɲ䵤줿¡£
+システムコールは カーネル 2.6.16 で Linux に追加された。
 .BR ppoll ()
-¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤Ï glibc 2.4 ¤ËÄɲ䵤줿¡£
-.SH ½àµò
+ライブラリコールは glibc 2.4 に追加された。
+.SH 準拠
 .BR poll ()
-¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£
+は POSIX.1-2001 に準拠している。
 .BR ppoll ()
-¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£
-.\" NetBSD 3.0 ¤Ë¤Ï pollts() ¤¬¤¢¤ë¡£
-.\" pollts() ¤Ï Linux ppoll () ¤ÈƱ¤¸¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£
-.SH Ãí°Õ
-¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤Ç¤Ï¡¢ÃÍ \-1 ¤ò»ý¤Ã¤¿Èóɸ½à¤ÎÄê¿ô
+は Linux 固有である。
+.\" NetBSD 3.0 には pollts() がある。
+.\" pollts() は Linux ppoll () と同じようなものである。
+.SH 注意
+いくつかの実装では、値 \-1 を持った非標準の定数
 .B INFTIM
-¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢
+が定義されており、
 .BR poll ()
-¤Î
+の
 .I timeout
-¤Î»ØÄê¤Ë»ÈÍѤǤ­¤ë¡£
-¤³¤ÎÄê¿ô¤Ï glibc ¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-.SS "Linux ¤Ç¤ÎÃí°Õ"
-Linux ¤Î
+の指定に使用できる。
+この定数は glibc では定義されていない。
+.SS "Linux での注意"
+Linux 
 .BR ppoll ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
+システムコールは
 .I timeout_ts
-°ú¤­¿ô¤òÊѹ¹¤¹¤ë¡£
-¤·¤«¤·¡¢glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÅϤ¹ timeout °ú¤­¿ô
-¤È¤·¤Æ¥í¡¼¥«¥ëÊÑ¿ô¤ò»È¤¦¤³¤È¤Ç¤³¤ÎÆ°ºî¤ò±£Ê䷤Ƥ¤¤ë¡£
-¤³¤Î¤¿¤á¡¢glibc ¤Î
+引き数を変更する。
+しかし、glibc のラッパー関数は、システムコールに渡す timeout 引き数
+としてローカル変数を使うことでこの動作を隠蔽している。
+このため、glibc の
 .BR ppoll ()
-´Ø¿ô¤Ç¤Ï
+関数では
 .I timeout_ts
-°ú¤­¿ô¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£
-.SH ¥Ð¥°
+引き数は変更されない。
+.SH ã\83\90ã\82°
 .BR select (2)
-¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡¢¸í¤Ã¤¿½àÈ÷´°Î»ÄÌÃΠ(spurious readiness
-notifications) ¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤ò»²¾È¤Î¤³¤È¡£
-.SH ´ØÏ¢¹àÌÜ
+の「バグ」の節に書かれている、誤った準備完了通知 (spurious readiness
+notifications) についての議論を参照のこと。
+.SH 関連項目
 .BR select (2),
 .BR select_tut (2),
 .BR time (7)