Copyright (c) 2014, Joyent, Inc. All Rights Reserved.
This file and its contents are supplied under the terms of the
Common Development and Distribution License ("CDDL"), version 1.0.
You may only use this file in accordance with the terms of version
1.0 of the CDDL.
A full copy of the text of the CDDL should have accompanied this
source. A copy of the CDDL is also available via the Internet at
http://www.illumos.org/license/CDDL.
#include <sys/epoll.h> int epoll_create(int size);
int epoll_create1(int flags);
The epoll_create() and epoll_create1() functions both create an epoll(5) instance that can be operated upon via epoll_ctl(3C), epoll_wait(3C) and epoll_pwait(3C). epoll instances are represented as file descriptors, and should be closed via close(2). The only difference between the two functions is their signature; epoll_create() takes a size argument that is vestigal and is only meaningful in as much as it must be greater than zero, while epoll_create1() takes a flags argument that can have any of the following values: EPOLL_CLOEXEC
Instance should be closed upon an exec(2); see open(2)'s description of O_CLOEXEC.
Upon succesful completion, 0 is returned. Otherwise, -1 is returned and errno is set to indicate the error.
The epoll_create() and epoll_create1() functions will fail if: EINVAL
Either the size is zero (epoll_create()) or the flags are invalid (epoll_create1()).
There are currently {OPEN_MAX} file descriptors open in the calling process.
The maximum allowable number of files is currently open in the system.
The epoll(5) facility is implemented for purposes of offering compatibility for Linux-borne applications; native applications should continue to prefer using event ports via the port_create(3C), port_associate(3C) and port_get(3C) interfaces. See epoll(5) for compatibility details and restrictions.
epoll_ctl(3C), epoll_wait(3C), epoll(5)