Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       epoll_create, epoll_create1 - открывает файловый дескриптор epoll

БИБЛИОТЕКА

       Стандартная библиотека языка C (libc, -lc)

ОБЗОР

       #include <sys/epoll.h>

       int epoll_create(int size);
       int epoll_create1(int flags);

ОПИСАНИЕ

       epoll_create()   creates  a new epoll(7)  instance.  Since Linux 2.6.8, the size argument is ignored, but
       must be greater than zero; see HISTORY.

       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 Было достигнуто ограничение по количеству открытых файловых дескрипторов на процесс.

       ENFILE Достигнуто максимальное количество открытых файлов в системе.

       ENOMEM Недостаточно памяти для создания объекта ядра.

СТАНДАРТЫ

       Linux.

ИСТОРИЯ

       epoll_create()
              Linux 2.6, glibc 2.3.2.

       epoll_create1()
              Linux 2.6.27, glibc 2.9.

       В  первоначальной  реализации  epoll_create()  аргумент  size  уведомлял  ядро  о   количестве   файловых
       дескрипторов, которые вызывающий предполагал добавить в экземпляр epoll. Ядро использовало эту информацию
       для  оценки требуемого количества памяти при начальном размещении внутренних структур данных, описывающих
       события (если требовалось, ядро выделяло больше места, если вызывающий  превышал  значение,  указанное  в
       size).  Сейчас, эта оценка больше не требуется (ядро динамически выделяет место под структуры данных), но
       значение size всё равно должно быть больше нуля — для обеспечения  обратной  совместимости  приложений  с
       новым epoll для работы на старых ядрах.

       Prior  to  Linux 2.6.29, a /proc/sys/fs/epoll/max_user_instances kernel parameter limited live epolls for
       each real user ID, and caused epoll_create()  to fail with EMFILE on overrun.

СМОТРИТЕ ТАКЖЕ

       close(2), epoll_ctl(2), epoll_wait(2), ioctl_eventpoll(2), epoll(7)

ПЕРЕВОД

       Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Yuri
       Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                  12 июня 2024 г.                                 epoll_create(2)