Scroll to navigation

EPOLL_CREATE(2) Linux Programmer's Manual EPOLL_CREATE(2)

名前

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

書式

#include <sys/epoll.h>

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

説明

epoll_create() は、 size 個のディスクリプタを保持できる大きさのイベントバッキング ストアの割り当てをカーネルに対して要求することにより、 epoll 「インスタンス」を作成する。 size はバッキングストアの最大サイズではなく、 内部構造の大きさをどの位にするかをカーネルに知らせるヒントでしかない。 (現在は size は無視される。下記の「注意」を参照。)

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

epoll_create1() は、 flags が 0 の場合、現在では使われていない size 引き数がなくなっている点を除けば epoll_create() と同じである。 flags に以下の値をビット毎の論理和 (OR) で指定することで、 異なる動作をさせることができる。

新しいファイルディスクリプタに対して close-on-exec (FD_CLOEXEC) フラグをセットする。 このフラグが役に立つ理由については、 open(2)O_CLOEXEC フラグの説明を参照のこと。

返り値

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

エラー

size が正でない。
(epoll_create1()) flags に無効な値が指定された。
/proc/sys/fs/epoll/max_user_instances によって指定されている、epoll インスタンスのユーザー単位の制限に達した。 更なる詳細については epoll(7) を参照のこと。
オープンされたファイルの総数がシステム制限に達した。
カーネルオブジェクトを作成するのに十分なメモリがなかった。

準拠

epoll_create() は Linux 独自であり、カーネル 2.5.44 で導入された。

注意

Linux 2.6.8 以降では、 size 引き数は使用されない (カーネルは、動的に必要なデータ構造の大きさを決定し、 最初のヒントを必要しない)。

関連項目

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

2009-01-17 Linux