EPOLL_CREATE

Section: Linux Programmer's Manual (2)
Updated: 2020-04-11
Index JM Home Page
 

名前

epoll_create, epoll_create1 - epoll ファイルディスクリプターをオープンする  

書式

#include <sys/epoll.h>

int epoll_create(int size);
int epoll_create1(int flags);
 

説明

epoll_create() は新規の epoll(7) インスタンスを作成する。 Linux 2.6.8 以降では、size 引数は無視されるが、 0 より大きな値で なければならない。「注意」を参照。

epoll_create() は、新しい epoll インスタンスを参照するファイルディスクリプターを返す。 このファイルディスクリプターは、その後の epoll インターフェースの呼び出しに使われる。 もう必要でなくなった場合は、 epoll_create() で返されたファイルディスクリプターは close(2) を使ってクローズされるべきである。 ある epoll インスタンスを参照する全てのファイルディスクリプターがクローズされると、 カーネルはそのインスタンスを破壊して、対応するリソースを解放し、 再使用できるようにする。  

epoll_create1()

epoll_create1() は、 flags が 0 の場合、現在では使われていない size 引数がなくなっている点を除けば epoll_create() と同じである。 flags に以下の値をビット毎の論理和 (OR) で指定することで、 異なる動作をさせることができる。
EPOLL_CLOEXEC
新しいファイルディスクリプターに対して close-on-exec (FD_CLOEXEC) フラグをセットする。 このフラグが役に立つ理由については、 open(2) の O_CLOEXEC フラグの説明を参照のこと。
 

返り値

成功すると、これらのシステムコールはファイルディスクリプター (非負の整数) を返す。 エラーの場合、-1 を返し、 errno にエラーを示す値を設定する。  

エラー

EINVAL
size が正でない。
EINVAL
(epoll_create1()) flags に無効な値が指定された。
EMFILE
/proc/sys/fs/epoll/max_user_instances によって指定されている、epoll インスタンスのユーザー単位の制限に達した。 更なる詳細については epoll(7) を参照のこと。
EMFILE
The per-process limit on the number of open file descriptors has been reached.
ENFILE
The system-wide limit on the total number of open files has been reached.
ENOMEM
カーネルオブジェクトを作成するのに十分なメモリーがなかった。
 

バージョン

epoll_create() はカーネル 2.6 で追加された。 ライブラリによるサポートは glibc バージョン 2.3.2 以降で提供されている。

epoll_create1() はカーネル 2.6.27 で追加された。 ライブラリによるサポートは glibc バージョン 2.9 以降で提供されている。  

準拠

epoll_create() は Linux 独自である。  

注意

初期の epoll_create() の実装では、size 引数は、呼び出し元が epoll インスタンスに追加しようとするファイルディスクリプター数をカーネルに教えるのに 使われていた。カーネルはこの情報をイベントの情報を格納する内部データ構造に最 初に割り当てる大きさを決める際のヒントとして使用していた (size で渡された ヒントよりも使用量が大きくなった場合には、必要に応じてカーネルは追加で領域を 割り当てる)。

現在では、このヒントはもはや必要なくなっている (カーネルはヒントなしで必要な データ構造のサイズを動的に変更する) が、今も size には 0 より大きい値を 指定しなければならない。これは、epoll を使うアプリケーションが古いカーネル で実行される際の後方互換性を保証するためである。  

関連項目

close(2), epoll_ctl(2), epoll_wait(2), epoll(7)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

create   epoll   カーネル   インスタンス   ヒント   フラグ   クローズ   limit   number   reached   ライブラリ   サポート   提供   構造   オープン   インターフェース   破壊   リソース   解放   再使用   ビット   理和   セット   理由   成功

Linux マニュアル 一覧

関連するコマンド・関数

epoll_create1.2   epoll_ctl.2   epoll_pwait.2   epoll_wait.2   epoll.7   lpoptions.1
 

Index

名前
書式
説明
epoll_create1()
返り値
エラー
バージョン
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:38:57 GMT, October 11, 2026