Главная » 2017 » Ноябрь » 17 » man 2 epoll_create
01:34
man 2 epoll_create

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


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



ОБЗОР


#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) для
того, чтобы узнать как это может пригодиться.



ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


При успешном выполнении данные системные вызовы возвращают неотрицательный
файловый дескриптор. При ошибке возвращается -1 и errno устанавливается в
соответствующее значение.



ОШИБКИ


EINVAL Аргумент size содержит отрицательное значение.

EINVAL (epoll_create1()) Указано неверное значение в flags.

EMFILE Был достигнут пользовательский предел на количество экземпляров epoll,
налагаемый /proc/sys/fs/epoll/max_user_instances. Подробней см. в epoll(7).

EMFILE Было достигнуто ограничение по количеству открытых файловых дескрипторов на
процесс.

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

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



ВЕРСИИ


Вызов epoll_create() был добавлен в ядро версии 2.6. В glibc соответствующая
функция появилась в версии 2.3.2.

Вызов epoll_create1() был добавлен в ядро версии 2.6.27. В glibc соответствующая
функция появилась в версии 2.9.

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



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


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



Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 602 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar