OSDN Git Service

(split) Convert release and draft pages to UTF-8.
[linuxjm/LDP_man-pages.git] / release / man2 / epoll_create.2
1 .\"
2 .\"  epoll by Davide Libenzi ( efficient event notification retrieval )
3 .\"  Copyright (C) 2003  Davide Libenzi
4 .\"
5 .\"  This program is free software; you can redistribute it and/or modify
6 .\"  it under the terms of the GNU General Public License as published by
7 .\"  the Free Software Foundation; either version 2 of the License, or
8 .\"  (at your option) any later version.
9 .\"
10 .\"  This program is distributed in the hope that it will be useful,
11 .\"  but WITHOUT ANY WARRANTY; without even the implied warranty of
12 .\"  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 .\"  GNU General Public License for more details.
14 .\"
15 .\"  You should have received a copy of the GNU General Public License
16 .\"  along with this program; if not, write to the Free Software
17 .\"  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 .\"
19 .\"  Davide Libenzi <davidel@xmailserver.org>
20 .\"
21 .\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
22 .\" Modified 2005-04-04 by Marko Kohtala <marko.kohtala@gmail.com>
23 .\" 2008-10-10, mtk: add description of epoll_create1()
24 .\"
25 .\" Japanese Version Copyright (c) 2004-2005 Yuichi SATO
26 .\"         all rights reserved.
27 .\" Translated Wed Jun  9 05:02:07 JST 2004
28 .\"         by Yuichi SATO <ysato444@yahoo.co.jp>
29 .\" Updated & Modified Wed Dec 29 07:12:00 JST 2004 by Yuichi SATO
30 .\" Updated & Modified Tue Apr 19 06:51:12 JST 2005 by Yuichi SATO
31 .\" Updated 2009-03-05 by Kentaro Shirakata <argrath@ub32.org>
32 .\"
33 .\"WORD:        backing store   バッキングストア
34 .\"
35 .TH EPOLL_CREATE 2 2009-01-17 "Linux" "Linux Programmer's Manual"
36 .SH 名前
37 epoll_create, epoll_create1 \- epoll ファイルディスクリプタをオープンする
38 .SH 書式
39 .nf
40 .B #include <sys/epoll.h>
41 .sp
42 .BI "int epoll_create(int " size );
43 .BI "int epoll_create1(int " flags );
44 .fi
45 .SH 説明
46 .BR epoll_create ()
47 は、
48 .I size
49 個のディスクリプタを保持できる大きさのイベントバッキング
50 ストアの割り当てをカーネルに対して要求することにより、
51 epoll 「インスタンス」を作成する。
52 .I size
53 はバッキングストアの最大サイズではなく、
54 内部構造の大きさをどの位にするかをカーネルに知らせるヒントでしかない。
55 (現在は
56 .I size
57 は無視される。下記の「注意」を参照。)
58
59 .BR epoll_create ()
60 は、新しい epoll インスタンスを参照するファイルディスクリプタを返す。
61 このファイルディスクリプタは、その後の
62 .B epoll
63 インタフェースの呼び出しに使われる。
64 もう必要でなくなった場合は、
65 .BR epoll_create ()
66 で返されたファイルディスクリプタは
67 .BR close (2)
68 を使ってクローズされるべきである。
69 ある epoll インスタンスを参照する全てのファイルディスクリプタがクローズされると、
70 カーネルはそのインスタンスを破壊して、対応するリソースを解放し、
71 再使用できるようにする。
72
73 .BR epoll_create1 ()
74 は、
75 .I flags
76 が 0 の場合、現在では使われていない
77 .I size
78 引き数がなくなっている点を除けば
79 .BR epoll_create ()
80 と同じである。
81 .I flags
82 に以下の値をビット毎の論理和 (OR) で指定することで、
83 異なる動作をさせることができる。
84 .TP
85 .B EPOLL_CLOEXEC
86 新しいファイルディスクリプタに対して
87 close-on-exec
88 .RB ( FD_CLOEXEC )
89 フラグをセットする。
90 このフラグが役に立つ理由については、
91 .BR open (2)
92
93 .B O_CLOEXEC
94 フラグの説明を参照のこと。
95 .SH 返り値
96 成功すると、これらのシステムコールは
97 非負のファイルディスクリプタを返す。
98 エラーの場合、\-1 を返し、
99 .I errno
100 にエラーを示す値を設定する。
101 .SH エラー
102 .TP
103 .B EINVAL
104 .I size
105 が正でない。
106 .TP
107 .B EINVAL
108 .RB ( epoll_create1 ())
109 .I flags
110 に無効な値が指定された。
111 .TP
112 .B EMFILE
113 .I /proc/sys/fs/epoll/max_user_instances
114 によって指定されている、epoll インスタンスのユーザー単位の制限に達した。
115 更なる詳細については
116 .BR epoll (7)
117 を参照のこと。
118 .TP
119 .B ENFILE
120 オープンされたファイルの総数がシステム制限に達した。
121 .TP
122 .B ENOMEM
123 カーネルオブジェクトを作成するのに十分なメモリがなかった。
124 .SH 準拠
125 .BR epoll_create ()
126 は Linux 独自であり、カーネル 2.5.44 で導入された。
127 .\" インタフェースは Linux カーネル 2.5.66 で確定されるべきである。
128 .SH 注意
129 Linux 2.6.8 以降では、
130 .I size
131 引き数は使用されない
132 (カーネルは、動的に必要なデータ構造の大きさを決定し、
133 最初のヒントを必要しない)。
134 .SH 関連項目
135 .BR close (2),
136 .BR epoll_ctl (2),
137 .BR epoll_wait (2),
138 .BR epoll (7)