X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release%2Fman2%2Fepoll_wait.2;h=4daba83c4ae134514e08989e9ebeadd09977ace5;hb=a3ebf7864325562d1ccf826f4ffa4a755d84cdf0;hp=21e0c1921a04f803756f3c21eaa20c1f8b5d03d8;hpb=ce024239a1d8e74a7a44f7c24cee4375cb13b3ef;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man2/epoll_wait.2 b/release/man2/epoll_wait.2 index 21e0c192..4daba83c 100644 --- a/release/man2/epoll_wait.2 +++ b/release/man2/epoll_wait.2 @@ -20,60 +20,39 @@ .\" .\" 2007-04-30: mtk, Added description of epoll_pwait() .\" -.\" Japanese Version Copyright (c) 2004-2005 Yuichi SATO -.\" all rights reserved. -.\" Translated Wed Jun 16 03:05:40 JST 2004 -.\" by Yuichi SATO -.\" Updated & Modified Tue Apr 19 07:05:42 JST 2005 by Yuichi SATO -.\" Updated 2007-06-02, Akihiro MOTOKI , LDP v2.51 -.\" Updated 2009-02-23, Akihiro MOTOKI , LDP v3.18 +.\"******************************************************************* .\" -.TH EPOLL_WAIT 2 2009-01-17 "Linux" "Linux Programmer's Manual" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH EPOLL_WAIT 2 2012\-05\-02 Linux "Linux Programmer's Manual" .SH 名前 epoll_wait, epoll_pwait \- epoll ファイルディスクリプタの I/O イベントを待つ .SH 書式 .nf -.B #include +\fB#include \fP .sp -.BI "int epoll_wait(int " epfd ", struct epoll_event *" events , -.BI " int " maxevents ", int " timeout ); -.BI "int epoll_pwait(int " epfd ", struct epoll_event *" events , -.BI " int " maxevents ", int " timeout , -.BI " const sigset_t *" sigmask ); +\fBint epoll_wait(int \fP\fIepfd\fP\fB, struct epoll_event *\fP\fIevents\fP\fB,\fP +\fB int \fP\fImaxevents\fP\fB, int \fP\fItimeout\fP\fB);\fP +\fBint epoll_pwait(int \fP\fIepfd\fP\fB, struct epoll_event *\fP\fIevents\fP\fB,\fP +\fB int \fP\fImaxevents\fP\fB, int \fP\fItimeout\fP\fB,\fP +\fB const sigset_t *\fP\fIsigmask\fP\fB);\fP .fi .SH 説明 -.BR epoll_wait () -システムコールは、 -ファイルディスクリプタ -.I epfd -で参照される -.B epoll -インスタンスに対するイベントを待つ。 -.I events -が指すメモリ領域には、呼び出し側が利用可能なイベントが格納される。 -最大 -.I maxevents -個のイベントが -.BR epoll_wait () -によって返される。 -.I maxevents -引き数は 0 より大きくなければならない。 +\fBepoll_wait\fP() システムコールは、ファイルディスクリプタ \fIepfd\fP で参照される +\fBepoll\fP(7) インスタンスに対するイベントを待つ。 \fIevents\fP が指すメモリ領域には、 +呼び出し側が利用可能なイベントが格納される。最大 \fImaxevents\fP 個のイベントが +\fBepoll_wait\fP() によって返される。 +\fImaxevents\fP 引き数は 0 より大きくなければならない。 -最大で -.I timeout -ミリ秒間イベントを待つ。 -.I timeout -を \-1 に指定すると、 -.BR epoll_wait () -は無限に待つ。 -また -.I timeout -を 0 に指定すると、 -.BR epoll_wait () -はイベントが利用可能でなくても、すぐに返る (返り値は 0 である)。 +\fItimeout\fP 引き数は、 \fBepoll_wait\fP() が停止する最小時間をミリ秒で指定 +する (この停止時間はシステムクロックの粒度に切り上げられ、カーネルの +スケジューリング遅延により少しだけ長くなる可能性がある)。 +\fItimeout\fP を \-1 に指定すると、 \fBepoll_wait\fP() は無限に停止する。 +\fItimeout\fP を 0 に指定すると、 \fBepoll_wait\fP() は利用可能なイベントが +なくても、すぐに返る。 -.I struct epoll_event -は以下のように定義される: +\fIstruct epoll_event\fP は以下のように定義される: .sp .in +4n .nf @@ -91,41 +70,21 @@ struct epoll_event { .fi .in -返される構造体の -.I data -メンバには、ユーザが -.BR epoll_ctl (2) -.RB ( EPOLL_CTL_ADD ", " EPOLL_CTL_MOD ) -で指定したデータが格納される。 -一方、 -.I events +返される構造体の \fIdata\fP メンバには、ユーザが \fBepoll_ctl\fP(2) (\fBEPOLL_CTL_ADD\fP, +\fBEPOLL_CTL_MOD\fP) で指定したデータが格納される。 一方、 \fIevents\fP メンバには返された利用可能なイベントのビットフィールドが格納される。 .SS epoll_pwait() -.BR epoll_wait () -と -.BR epoll_pwait () -の関係は、 -.BR select (2) -と -.BR pselect (2) -の関係と同様である。 -.BR pselect (2) -同様、 -.BR epoll_pwait () -を使うと、アプリケーションは、ファイルディスクリプタが準備できた状態になるか、 -シグナルが捕捉されるまで、安全に待つことができる。 +\fBepoll_wait\fP() と \fBepoll_pwait\fP() の関係は、 \fBselect\fP(2) と \fBpselect\fP(2) +の関係と同様である。 \fBpselect\fP(2) 同様、 \fBepoll_pwait\fP() +を使うと、アプリケーションは、ファイルディスクリプタが準備できた状態になるか、 シグナルが捕捉されるまで、安全に待つことができる。 -以下の -.BR epoll_pwait () -の呼び出しは、 +以下の \fBepoll_pwait\fP() の呼び出しは、 .nf ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask); .fi -次の呼び出しを -.I atomic -に実行するのと等価である。 +次の呼び出しを \fIatomic\fP に実行するのと等価である。 .nf sigset_t origmask; @@ -135,61 +94,45 @@ struct epoll_event { sigprocmask(SIG_SETMASK, &origmask, NULL); .fi .PP -.I sigmask -引き数には NULL を指定してもよい。 -その場合には、 -.BR epoll_pwait () -は -.BR epoll_wait () +\fIsigmask\fP 引き数には NULL を指定してもよい。 その場合には、 \fBepoll_pwait\fP() は \fBepoll_wait\fP() と等価となる。 .SH 返り値 -成功した場合、 -.BR epoll_wait () -は要求された I/O に対して準備ができているファイルディスクリプタの数を返す。 -また要求された -.I timeout -ミリ秒の間にファイルディスクリプタが準備できない場合は、0 を返す。 -エラーが起こった場合、 -.BR epoll_wait () -は \-1 を返し、 -.I errno -を適切に設定する。 +成功した場合、 \fBepoll_wait\fP() は要求された I/O に対して準備ができているファイルディスクリプタの数を返す。 また要求された +\fItimeout\fP ミリ秒の間にファイルディスクリプタが準備できない場合は、0 を返す。 エラーが起こった場合、 \fBepoll_wait\fP() は +\-1 を返し、 \fIerrno\fP を適切に設定する。 .SH エラー -.TP -.B EBADF -.I epfd -が有効なファイルディスクリプタでない。 -.TP -.B EFAULT -.I events -で指されるメモリ領域に書き込み権限でアクセスできない。 -.TP -.B EINTR -要求されたどのイベントも発生せず、かつ -.I timeout -の期限が切れる前に、システムコールがシグナルハンドラによって割り込まれた。 -.BR signal (7) -参照。 -.TP -.B EINVAL -.I epfd -が -.B epoll -ファイルディスクリプタでない。 -または -.I maxevents -が 0 以下である。 +.TP +\fBEBADF\fP +\fIepfd\fP が有効なファイルディスクリプタでない。 +.TP +\fBEFAULT\fP +\fIevents\fP で指されるメモリ領域に書き込み権限でアクセスできない。 +.TP +\fBEINTR\fP +要求されたどのイベントも発生せず、かつ \fItimeout\fP の期限が切れる前に、 +システムコールがシグナルハンドラによって割り込まれた。 +\fBsignal\fP(7) 参照。 +.TP +\fBEINVAL\fP +\fIepfd\fP が \fBepoll\fP ファイルディスクリプタでない。 または \fImaxevents\fP が 0 以下である。 .SH バージョン -.BR epoll_pwait () -はカーネル 2.6.19 で Linux に追加された。 +.\" To be precise: kernel 2.5.44. +.\" The interface should be finalized by Linux kernel 2.5.66. +\fBepoll_wait\fP() はカーネル 2.6 で追加された。 +ライブラリによるサポートは glibc バージョン 2.3.2 以降で提供されている。 -.BR epoll_pwait () -の glibc でのサポートは glibc 2.6 以降で提供されている。 +\fBepoll_pwait\fP() はカーネル 2.6.19 で Linux に追加された。 +ライブラリによるサポートは glibc バージョン 2.6 以降で提供されている。 .SH 準拠 -.BR epoll_wait () -は Linux 独自であり、カーネル 2.5.44 で導入された。 -.\" インタフェースは Linux カーネル 2.5.66 で確定されるべきである。 +\fBepoll_wait\fP() は Linux 独自である。 +.SH 注意 +あるスレッドが \fBepoll_pwait\fP() を呼び出して停止されている間に、 +別のスレッドが wait 中の \fBepoll\fP インストールにファイルディスクリプタを +追加することがある。新しいファイルディスクリプタでイベントが発生すると、 +\fBepoll_wait\fP() の呼び出しによる停止が解除されることになる。 .SH 関連項目 -.BR epoll_create (2), -.BR epoll_ctl (2), -.BR epoll (7) +\fBepoll_create\fP(2), \fBepoll_ctl\fP(2), \fBepoll\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。