man-pages/man2/epoll_create.2

141 lines
3.8 KiB
Groff
Raw Normal View History

2004-11-03 13:51:07 +00:00
.\"
.\" epoll by Davide Libenzi ( efficient event notification retrieval )
.\" Copyright (C) 2003 Davide Libenzi
.\"
.\" 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 program; if not, write to the Free Software
.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
.\"
.\" Davide Libenzi <davidel@xmailserver.org>
.\"
2007-09-20 06:52:22 +00:00
.\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
.\" Modified 2005-04-04 by Marko Kohtala <marko.kohtala@gmail.com>
.\" 2008-10-10, mtk: add description of epoll_create1()
2004-11-03 13:51:07 +00:00
.\"
.TH EPOLL_CREATE 2 2012-04-15 "Linux" "Linux Programmer's Manual"
2004-11-03 13:51:07 +00:00
.SH NAME
epoll_create, epoll_create1 \- open an epoll file descriptor
2004-11-03 13:51:07 +00:00
.SH SYNOPSIS
.nf
2004-11-03 13:51:07 +00:00
.B #include <sys/epoll.h>
.sp
2007-07-10 04:51:30 +00:00
.BI "int epoll_create(int " size );
.BI "int epoll_create1(int " flags );
.fi
2004-11-03 13:51:07 +00:00
.SH DESCRIPTION
.BR epoll_create ()
creates an
.BR epoll (7)
"instance",
requesting the kernel to allocate an event backing store dimensioned for
2004-11-03 13:51:07 +00:00
.I size
descriptors.
The
2004-11-03 13:51:07 +00:00
.I size
is not the maximum size of the backing store but
just a hint to the kernel about how to dimension internal structures.
(Nowadays,
.I size
is unused; see NOTES below.)
.BR epoll_create ()
returns a file descriptor referring to the new epoll instance.
This file descriptor is used for all the subsequent calls to the
2004-11-03 13:51:07 +00:00
.B epoll
interface.
When no longer required, the file descriptor returned by
.BR epoll_create ()
should be closed by using
2004-11-03 13:51:07 +00:00
.BR close (2).
When all file descriptors referring to an epoll instance have been closed,
the kernel destroys the instance
and releases the associated resources for reuse.
.SS epoll_create1()
If
.I flags
is 0, then, other than the fact that the obsolete
.I size
argument is dropped,
.BR epoll_create1 ()
is the same as
.BR epoll_create ().
The following value can be included in
.IR flags
to obtain different behavior:
.TP
.B EPOLL_CLOEXEC
Set the close-on-exec
.RB ( FD_CLOEXEC )
flag on the new file descriptor.
See the description of the
.B O_CLOEXEC
flag in
.BR open (2)
for reasons why this may be useful.
2004-11-03 13:51:07 +00:00
.SH "RETURN VALUE"
On success,
these system calls
return a nonnegative file descriptor.
On error, \-1 is returned, and
2004-11-03 13:51:07 +00:00
.I errno
is set to indicate the error.
2004-11-03 13:51:07 +00:00
.SH ERRORS
.TP
.B EINVAL
.I size
is not positive.
.TP
.B EINVAL
.RB ( epoll_create1 ())
Invalid value specified in
.IR flags .
.TP
.B EMFILE
The per-user limit on the number of epoll instances imposed by
.I /proc/sys/fs/epoll/max_user_instances
was encountered.
See
.BR epoll (7)
for further details.
.TP
2004-11-03 13:51:07 +00:00
.B ENFILE
The system limit on the total number of open files has been reached.
.TP
.B ENOMEM
There was insufficient memory to create the kernel object.
.SH VERSIONS
.BR epoll_create ()
was added to the kernel in version 2.6.
Library support is provided in glibc starting with version 2.3.2.
.\" To be precise: kernel 2.5.44.
2006-12-17 01:34:44 +00:00
.\" The interface should be finalized by Linux kernel 2.5.66.
.BR epoll_create1 ()
was added to the kernel in version 2.6.27.
Library support is provided in glibc starting with version 2.9.
.SH CONFORMING TO
.BR epoll_create ()
is Linux-specific.
.SH NOTES
Since Linux 2.6.8, the
.I size
argument is unused, but must be greater than zero.
(The kernel dynamically sizes the required data structures
without needing this initial hint.)
2004-11-03 13:51:07 +00:00
.SH "SEE ALSO"
.BR close (2),
.BR epoll_ctl (2),
.BR epoll_wait (2),
2006-04-21 00:29:37 +00:00
.BR epoll (7)