Provided by: manpages-ru-dev_4.18.1-1_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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.