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

ИМЯ

       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)