Provided by: manpages-ru-dev_4.21.0-2_all 

ИМЯ
epoll_create, epoll_create1 - открывает файловый дескриптор epoll
LIBRARY
Standard C library (libc, -lc)
СИНТАКСИС
#include <sys/epoll.h>
int epoll_create(int size);
int epoll_create1(int flags);
ОПИСАНИЕ
Вызов epoll_create() создаёт новый экземпляр epoll(7). Начиная с Linux 2.6.8 аргумент size игнорируется,
но должен быть больше нуля; смотрите ЗАМЕЧАНИЯ.
epoll_create() возвращает дескриптор файла, указывающий на новый экземпляр epoll. Он используется для
всех последующих вызовов к интерфейсу epoll. По окончанию использования дескриптор файла, возвращаемый
epoll_create(), должен быть закрыт с помощью close(2). Когда все файловые дескрипторы, указывающие на
экземпляр epoll, будут закрыты, ядро уничтожит экземпляр и освободит связанные с ним ресурсы для
повторного использования.
epoll_create1()
Если flags равно 0, то, если не учитывать, что устаревший аргумент size не используется, epoll_create1()
выполняет тоже что и epoll_create(). Для различного поведения во flags могут включаться:
EPOLL_CLOEXEC
Устанавливает флаг close-on-exec (FD_CLOEXEC) для нового открытого файлового дескриптора. Смотрите
описание флага O_CLOEXEC в open(2) для того, чтобы узнать как это может пригодиться.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
On success, these system calls return a file descriptor (a nonnegative integer). On error, -1 is
returned, and errno is set to indicate the error.
ОШИБКИ
EINVAL Аргумент size содержит отрицательное значение.
EINVAL (epoll_create1()) Указано неверное значение в flags.
EMFILE Был достигнут пользовательский предел на количество экземпляров epoll, налагаемый
/proc/sys/fs/epoll/max_user_instances. Подробней см. в epoll(7).
EMFILE Было достигнуто ограничение по количеству открытых файловых дескрипторов на процесс.
ENFILE Достигнуто максимальное количество открытых файлов в системе.
ENOMEM Недостаточно памяти для создания объекта ядра.
ВЕРСИИ
epoll_create() was added in Linux 2.6. Library support is provided in glibc 2.3.2.
epoll_create1() was added in Linux 2.6.27. Library support is provided in glibc 2.9.
СТАНДАРТЫ
Вызовы epoll_create() и epoll_create1() есть только в Linux.
ЗАМЕЧАНИЯ
В первоначальной реализации epoll_create() аргумент size уведомлял ядро о количестве файловых
дескрипторов, которые вызывающий предполагал добавить в экземпляр epoll. Ядро использовало эту информацию
для оценки требуемого количества памяти при начальном размещении внутренних структур данных, описывающих
события (если требовалось, ядро выделяло больше места, если вызывающий превышал значение, указанное в
size). Сейчас, эта оценка больше не требуется (ядро динамически выделяет место под структуры данных), но
значение size всё равно должно быть больше нуля — для обеспечения обратной совместимости приложений с
новым epoll для работы на старых ядрах.
СМ. ТАКЖЕ
close(2), epoll_ctl(2), epoll_wait(2), epoll(7)
ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Yuri
Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо
на man-pages-ru-talks@lists.sourceforge.net.
Linux man-pages 6.03 4 декабря 2022 г. epoll_create(2)