epoll_create(2)

NUME
epoll_create, epoll_create1 - deschide un descriptor de fișier epoll

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <sys/epoll.h>

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

DESCRIERE
epoll_create() creează o nouă instanță epoll(7). Începând cu Linux 2.6.8, argumentul size este ignorat, dar trebuie să fie mai mare decât zero; a se vedea ISTORIC.

epoll_create() returnează un descriptor de fișier care se referă la noua instanță epoll. Acest descriptor de fișier este utilizat pentru toate apelurile ulterioare la interfața epoll. Atunci când nu mai este necesar, descriptorul de fișier returnat de epoll_create() trebuie închis prin utilizarea close(2). Atunci când toți descriptorii de fișiere care se referă la o instanță epoll au fost închiși, nucleul distruge instanța și eliberează resursele asociate pentru reutilizare.

  epoll_create1()
Dacă flags este 0, atunci, în afară de faptul că se renunță la argumentul învechit size, epoll_create1() este la fel ca epoll_create(). Următoarea valoare poate fi inclusă în flags pentru a obține un comportament diferit:

EPOLL_CLOEXEC
    Stabilește fanionul „close-on-exec” (FD_CLOEXEC) pe noul descriptor de fișier. A se vedea descrierea fanionului O_CLOEXEC în open(2) pentru motivele pentru care acest lucru poate fi util.

VALOAREA RETURNATĂ
În caz de succes, aceste apeluri de sistem returnează un descriptor de fișier (un număr întreg nenegativ). În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

EINVAL
    argumentul size nu este pozitiv.

EINVAL
    (epoll_create1()) Valoare nevalidă specificată în flags.

EMFILE
    Limita per proces a numărului de descriptori de fișiere deschise a fost atinsă.

ENFILE
    Limita la nivel de sistem a numărului total de fișiere deschise a fost atinsă.

ENOMEM
    Nu a existat suficientă memorie pentru a crea obiectul nucleului.

STANDARDE
Linux.

ISTORIC

epoll_create()
    Linux 2.6, glibc 2.3.2.

epoll_create1()
    Linux 2.6.27, glibc 2.9.

În implementarea inițială a epoll_create(), argumentul size informa nucleul cu privire la numărul de descriptori de fișiere pe care apelantul se aștepta să îi adauge la instanța epoll. Nucleul folosea această informație ca un indiciu pentru cantitatea de spațiu pe care trebuia să o aloce inițial în structurile de date interne care descriu evenimentele (dacă era necesar, nucleul aloca mai mult spațiu dacă utilizarea apelantului depășea indicația dată în size). În prezent, acest indiciu nu mai este necesar ( nucleul dimensionează în mod dinamic structurile de date necesare fără a avea nevoie de indiciu), dar size trebuie să fie în continuare mai mare decât zero, pentru a asigura compatibilitatea retroactivă atunci când noile aplicații epoll sunt rulate pe nuclee mai vechi.

Înainte de Linux 2.6.29, un parametru de nucleu /proc/sys/fs/epoll/max_user_instances limita numărul de epoll-uri active pentru fiecare ID de utilizator real și făcea ca epoll_create() să eșueze cu EMFILE la depășirea acestei valori.

CONSULTAȚI ȘI
close(2), epoll_ctl(2), epoll_wait(2), ioctl_eventpoll(2), epoll(7)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.