2 .\" epoll by Davide Libenzi ( efficient event notification retrieval )
3 .\" Copyright (C) 2003 Davide Libenzi
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.
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.
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
19 .\" Davide Libenzi <davidel@xmailserver.org>
21 .TH EPOLL_CTL 2 2002-10-23 "Linux" "Linux Programmer's Manual"
23 epoll_ctl \- control interface for an epoll descriptor
25 .B #include <sys/epoll.h>
27 .BI "int epoll_ctl(int " epfd ", int " op ", int " fd \
28 ", struct epoll_event *" event );
34 by requesting that the operation
36 be performed on the target file descriptor,
40 describes the object linked to the file descriptor
48 typedef union epoll_data {
56 __uint32_t events; /* Epoll events */
57 epoll_data_t data; /* User data variable */
64 member is a bit set composed using the following available event
68 The associated file is available for
73 The associated file is available for
77 .BR EPOLLRDHUP " (since kernel 2.6.17)"
78 Stream socket peer closed connection,
79 or shut down writing half of connection.
80 (This flag is especially useful for writing simple code to detect
81 peer shutdown when using Edge Triggered monitoring.)
84 There is urgent data available for
89 Error condition happened on the associated file descriptor.
91 will always wait for this event; it is not necessary to set it in
95 Hang up happened on the associated file descriptor.
97 will always wait for this event; it is not necessary to set it in
101 Sets the Edge Triggered behavior for the associated file descriptor.
102 The default behavior for
107 for more detailed information about Edge and Level Triggered event
108 distribution architectures.
110 .BR EPOLLONESHOT " (since kernel 2.6.2)"
111 Sets the one-shot behavior for the associated file descriptor.
112 This means that after an event is pulled out with
114 the associated file descriptor is internally disabled and no other events
115 will be reported by the
122 to re-enable the file descriptor with a new event mask.
126 interface supports all file descriptors that support
134 Add the target file descriptor
140 and associate the event
142 with the internal file linked to
148 associated with the target file descriptor
152 Remove the target file descriptor
160 is ignored and can be NULL (but see BUGS below).
166 When an error occurs,
170 is set appropriately.
177 is not a valid file descriptor.
183 and the supplied file descriptor
197 or the requested operation
199 is not supported by this interface.
213 There was insufficient memory to handle the requested
224 is Linux-specific, and was introduced in kernel 2.5.44.
225 .\" The interface should be finalized by Linux kernel 2.5.66.
227 In kernel versions before 2.6.9, the
229 operation required a non-NULL pointer in
231 even though this argument is ignored.
234 can be specified as NULL
237 Applications that need to be portable to kernels before 2.6.9
238 should specify a non-NULL pointer in
241 .BR epoll_create (2),