.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2003 Davide Libenzi .\" and Copyright 2008, 2009, 2012 Michael Kerrisk .\" Davide Libenzi .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\" Modified 2004-06-17 by Michael Kerrisk .\" Modified 2005-04-04 by Marko Kohtala .\" 2008-10-10, mtk: add description of epoll_create1() .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH epoll_create 2 "4 декабря 2022 г." "Linux man\-pages 6.03" .SH ИМЯ epoll_create, epoll_create1 \- открывает файловый дескриптор epoll .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint epoll_create(int \fP\fIsize\fP\fB);\fP \fBint epoll_create1(int \fP\fIflags\fP\fB);\fP .fi .SH ОПИСАНИЕ Вызов \fBepoll_create\fP() создаёт новый экземпляр \fBepoll\fP(7). Начиная с Linux 2.6.8 аргумент \fIsize\fP игнорируется, но должен быть больше нуля; смотрите ЗАМЕЧАНИЯ. .PP \fBepoll_create\fP() возвращает дескриптор файла, указывающий на новый экземпляр epoll. Он используется для всех последующих вызовов к интерфейсу \fBepoll\fP. По окончанию использования дескриптор файла, возвращаемый \fBepoll_create\fP(), должен быть закрыт с помощью \fBclose\fP(2). Когда все файловые дескрипторы, указывающие на экземпляр epoll, будут закрыты, ядро уничтожит экземпляр и освободит связанные с ним ресурсы для повторного использования. .SS epoll_create1() Если \fIflags\fP равно 0, то, если не учитывать, что устаревший аргумент \fIsize\fP не используется, \fBepoll_create1\fP() выполняет тоже что и \fBepoll_create\fP(). Для различного поведения во \fIflags\fP могут включаться: .TP \fBEPOLL_CLOEXEC\fP Устанавливает флаг close\-on\-exec (\fBFD_CLOEXEC\fP) для нового открытого файлового дескриптора. Смотрите описание флага \fBO_CLOEXEC\fP в \fBopen\fP(2) для того, чтобы узнать как это может пригодиться. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" On success, these system calls return a file descriptor (a nonnegative integer). On error, \-1 is returned, and \fIerrno\fP is set to indicate the error. .SH ОШИБКИ .TP \fBEINVAL\fP Аргумент \fIsize\fP содержит отрицательное значение. .TP \fBEINVAL\fP (\fBepoll_create1\fP()) Указано неверное значение в \fIflags\fP. .TP \fBEMFILE\fP Был достигнут пользовательский предел на количество экземпляров epoll, налагаемый \fI/proc/sys/fs/epoll/max_user_instances\fP. Подробней см. в \fBepoll\fP(7). .TP \fBEMFILE\fP Было достигнуто ограничение по количеству открытых файловых дескрипторов на процесс. .TP \fBENFILE\fP Достигнуто максимальное количество открытых файлов в системе. .TP \fBENOMEM\fP Недостаточно памяти для создания объекта ядра. .SH ВЕРСИИ \fBepoll_create\fP() was added in Linux 2.6. Library support is provided in glibc 2.3.2. .PP .\" To be precise: kernel 2.5.44. .\" The interface should be finalized by Linux kernel 2.5.66. \fBepoll_create1\fP() was added in Linux 2.6.27. Library support is provided in glibc 2.9. .SH СТАНДАРТЫ Вызовы \fBepoll_create\fP() и \fBepoll_create1\fP() есть только в Linux. .SH ЗАМЕЧАНИЯ В первоначальной реализации \fBepoll_create\fP() аргумент \fIsize\fP уведомлял ядро о количестве файловых дескрипторов, которые вызывающий предполагал добавить в экземпляр \fBepoll\fP. Ядро использовало эту информацию для оценки требуемого количества памяти при начальном размещении внутренних структур данных, описывающих события (если требовалось, ядро выделяло больше места, если вызывающий превышал значение, указанное в \fIsize\fP). Сейчас, эта оценка больше не требуется (ядро динамически выделяет место под структуры данных), но значение \fIsize\fP всё равно должно быть больше нуля — для обеспечения обратной совместимости приложений с новым \fBepoll\fP для работы на старых ядрах. .SH "СМ. ТАКЖЕ" \fBclose\fP(2), \fBepoll_ctl\fP(2), \fBepoll_wait\fP(2), \fBepoll\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .