.\" Copyright (C) 2003 Davide Libenzi .\" Davide Libenzi .\" .\" %%%LICENSE_START(GPLv2+_SW_3_PARA) .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, see .\" . .\" %%%LICENSE_END .\" .\" Modified 2004-06-17 by Michael Kerrisk .\" Modified 2005-04-04 by Marko Kohtala .\" 2008-10-10, mtk: add description of epoll_create1() .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Japanese Version Copyright (c) 2004-2005 Yuichi SATO .\" all rights reserved. .\" Translated Wed Jun 9 05:02:07 JST 2004 .\" by Yuichi SATO .\" Updated & Modified Wed Dec 29 07:12:00 JST 2004 by Yuichi SATO .\" Updated & Modified Tue Apr 19 06:51:12 JST 2005 by Yuichi SATO .\" Updated 2009-03-05 by Kentaro Shirakata .\" Updated 2012-04-30, Akihiro MOTOKI .\" .TH EPOLL_CREATE 2 2012\-04\-15 Linux "Linux Programmer's Manual" .SH 名前 epoll_create, epoll_create1 \- epoll ファイルディスクリプタをオープンする .SH 書式 .nf \fB#include \fP .sp \fBint epoll_create(int \fP\fIsize\fP\fB);\fP \fBint epoll_create1(int \fP\fIflags\fP\fB);\fP .fi .SH 説明 \fBepoll_create\fP()は \fBepoll\fP(7) インスタンスを作成する。 Linux 2.6.8 以降では、\fIsize\fP 引き数は無視されるが、 0 より大きな値で なければならない。下記の「注意」を参照。 \fBepoll_create\fP() は、新しい epoll インスタンスを参照するファイルディスクリプタを返す。 このファイルディスクリプタは、その後の \fBepoll\fP インタフェースの呼び出しに使われる。 もう必要でなくなった場合は、 \fBepoll_create\fP() で返されたファイルディスクリプタは \fBclose\fP(2) を使ってクローズされるべきである。 ある epoll インスタンスを参照する全てのファイルディスクリプタがクローズされると、 カーネルはそのインスタンスを破壊して、対応するリソースを解放し、 再使用できるようにする。 .SS epoll_create1() \fBepoll_create1\fP() は、 \fIflags\fP が 0 の場合、現在では使われていない \fIsize\fP 引き数がなくなっている点を除けば \fBepoll_create\fP() と同じである。 \fIflags\fP に以下の値をビット毎の論理和 (OR) で指定することで、 異なる動作をさせることができる。 .TP \fBEPOLL_CLOEXEC\fP 新しいファイルディスクリプタに対して close\-on\-exec (\fBFD_CLOEXEC\fP) フラグをセットする。 このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。 .SH 返り値 成功すると、これらのシステムコールは 非負のファイルディスクリプタを返す。 エラーの場合、\-1 を返し、 \fIerrno\fP にエラーを示す値を設定する。 .SH エラー .TP \fBEINVAL\fP \fIsize\fP が正でない。 .TP \fBEINVAL\fP (\fBepoll_create1\fP()) \fIflags\fP に無効な値が指定された。 .TP \fBEMFILE\fP \fI/proc/sys/fs/epoll/max_user_instances\fP によって指定されている、epoll インスタンスのユーザー単位の制限に達した。 更なる詳細については \fBepoll\fP(7) を参照のこと。 .TP \fBENFILE\fP オープンされたファイルの総数がシステム制限に達した。 .TP \fBENOMEM\fP カーネルオブジェクトを作成するのに十分なメモリがなかった。 .SH バージョン \fBepoll_create\fP() はカーネル 2.6 で追加された。 ライブラリによるサポートは glibc バージョン 2.3.2 以降で提供されている。 .\" To be precise: kernel 2.5.44. .\" The interface should be finalized by Linux kernel 2.5.66. \fBepoll_create1\fP() はカーネル 2.6.27 で追加された。 ライブラリによるサポートは glibc バージョン 2.9 以降で提供されている。 .SH 準拠 \fBepoll_create\fP() は Linux 独自である。 .SH 注意 初期の \fBepoll_create\fP() の実装では、\fIsize\fP 引き数は、呼び出し元が \fBepoll\fP インスタンスに追加しようとするファイルディスクリプタ数をカーネルに教えるのに 使われていた。カーネルはこの情報をイベントの情報を格納する内部データ構造に最 初に割り当てる大きさを決める際のヒントとして使用していた (\fIsize\fP で渡された ヒントよりも使用量が大きくなった場合には、必要に応じてカーネルは追加で領域を 割り当てる)。 現在では、このヒントはもはや必要なくなっている (カーネルはヒントなしで必要な データ構造のサイズを動的に変更する) が、今も \fIsize\fP には 0 より大きい値を 指定しなければならない。これは、\fBepoll\fP を使うアプリケーションが古いカーネル で実行される際の後方互換性を保証するためである。 .SH 関連項目 \fBclose\fP(2), \fBepoll_ctl\fP(2), \fBepoll_wait\fP(2), \fBepoll\fP(7) .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man\-pages/ に書かれている。