.\" -*- coding: UTF-8 -*- .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH epoll_wait 2 "28 iunie 2025" "Pagini de manual de Linux 6.15" .SH NUME epoll_wait, epoll_pwait, epoll_pwait2 \- așteaptă un eveniment de In/Ieș pe un descriptor de fișier epoll .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBint epoll_wait(\fPint maxevents; \fB int \fP\fIepfd\fP\fB, struct epoll_event \fP\fIevents\fP\fB[\fP\fImaxevents\fP\fB],\fP \fB int \fP\fImaxevents\fP\fB, int \fP\fItimeout\fP\fB);\fP \fBint epoll_pwait(\fPint maxevents; \fB int \fP\fIepfd\fP\fB, struct epoll_event \fP\fIevents\fP\fB[\fP\fImaxevents\fP\fB],\fP \fB int \fP\fImaxevents\fP\fB, int \fP\fItimeout\fP\fB,\fP \fB const sigset_t *_Nullable \fP\fIsigmask\fP\fB);\fP \fBint epoll_pwait2(\fPint maxevents; \fB int \fP\fIepfd\fP\fB, struct epoll_event \fP\fIevents\fP\fB[\fP\fImaxevents\fP\fB],\fP \fB int \fP\fImaxevents\fP\fB, const struct timespec *_Nullable \fP\fItimeout\fP\fB,\fP \fB const sigset_t *_Nullable \fP\fIsigmask\fP\fB);\fP .fi .SH DESCRIERE Apelul de sistem \fBepoll_wait\fP() așteaptă evenimente pe instanța \fBepoll\fP(7) menționată de descriptorul de fișier \fIepfd\fP. Tamponul indicat de \fIevents\fP este utilizat pentru a returna informații din lista pregătită despre descriptorii de fișiere din lista de interese care au unele evenimente disponibile. Până la \fImaxevents\fP sunt returnate de \fBepoll_wait\fP(). Argumentul \fImaxevents\fP trebuie să fie mai mare decât zero. .P Argumentul \fItimeout\fP specifică numărul de milisecunde în care \fBepoll_wait\fP() se va bloca. Timpul este măsurat în raport cu ceasul \fBCLOCK_MONOTONIC\fP. .P Un apel la \fBepoll_wait\fP() se va bloca până când: .IP \[bu] 3 un descriptor de fișier furnizează un eveniment; .IP \[bu] apelul este întrerupt de un gestionar de semnal; sau .IP \[bu] timpul de așteptare expiră. .P Rețineți că intervalul \fItimeout\fP va fi rotunjit la gradul de finețe al ceasului de sistem, iar întârzierile de planificare ale nucleului înseamnă că intervalul de blocare poate fi depășit cu o cantitate mică. Specificarea unui \fItimeout\fP de \-1 face ca \fBepoll_wait\fP() să se blocheze indefinit, în timp ce specificarea unui \fItimeout\fP egal cu zero face ca \fBepoll_wait\fP() să returneze imediat, chiar dacă nu sunt disponibile evenimente. .P \fIstructura epoll_event\fP este descrisă în \fBepoll_event\fP(3type). .P Câmpul \fIdata\fP al fiecărei structuri \fIepoll_event\fP returnate conține aceleași date ca cele specificate în cel mai recent apel la \fBepoll_ctl\fP(2) (\fBEPOLL_CTL_ADD\fP, \fBEPOLL_CTL_MOD\fP) pentru descriptorul de fișier deschis corespunzător. .P .\" Câmpul \fIevents\fP este o mască de biți care indică evenimentele care au avut loc pentru descrierea fișierului deschis corespunzător. Consultați \fBepoll_ctl\fP(2) pentru o listă a biților care pot apărea în această mască. .SS epoll_pwait() Relația dintre \fBepoll_wait\fP() și \fBepoll_pwait\fP() este analogă cu relația dintre \fBselect\fP(2) și \fBpselect\fP(2): la fel ca \fBpselect\fP(2), \fBepoll_pwait\fP() permite unei aplicații să aștepte în siguranță până când un descriptor de fișier devine gata sau până când un semnal este recepționat. .P Următorul apel \fBepoll_pwait\fP(): .P .in +4n .EX ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask); .EE .in .P este echivalent cu executarea \fIatomică\fP a următoarelor apeluri: .P .in +4n .EX sigset_t origmask; \& pthread_sigmask(SIG_SETMASK, &sigmask, &origmask); ready = epoll_wait(epfd, &events, maxevents, timeout); pthread_sigmask(SIG_SETMASK, &origmask, NULL); .EE .in .P .\" Argumentul \fIsigmask\fP poate fi specificat ca NULL, caz în care \fBepoll_pwait\fP() este echivalent cu \fBepoll_wait\fP(). .SS epoll_pwait2() Apelul de sistem \fBepoll_pwait2\fP() este echivalent cu \fBepoll_pwait\fP(), cu excepția argumentului \fItimeout\fP. Acesta ia un argument de tip \fItimespec\fP pentru a putea specifica timpul de așteptare pentru rezoluția de nanosecunde. Acest argument funcționează la fel ca în \fBpselect\fP(2) și \fBppoll\fP(2). Dacă \fItimeout\fP este NULL, atunci \fBepoll_pwait2\fP() se poate bloca indefinit. .SH "VALOAREA RETURNATĂ" În caz de succes, \fBepoll_wait\fP() returnează numărul de descriptori de fișier pregătiți pentru operația I/O solicitată sau zero dacă niciun descriptor de fișier nu a devenit pregătit în timpul milisecundelor \fItimeout\fP solicitate. În caz de eșec, \fBepoll_wait\fP() returnează \-1 și \fIerrno\fP este configurată pentru a indica eroarea. .SH ERORI\-IEȘIRE .TP \fBEBADF\fP \fIepfd\fP nu este un descriptor de fișier valid. .TP \fBEFAULT\fP Zona de memorie indicată de \fIevents\fP nu este accesibilă cu permisiuni de scriere. .TP \fBEINTR\fP Apelul a fost întrerupt de un gestionar de semnal înainte ca (1) oricare dintre evenimentele solicitate să se producă sau (2) \fItimpul de așteptare\fP să expire; a se vedea \fBsignal\fP(7). .TP \fBEINVAL\fP \fIepfd\fP nu este un descriptor de fișier \fBepoll\fP sau \fImaxevents\fP este mai mic sau egal cu zero. .SH STANDARDE Linux. .SH ISTORIC .TP \fBepoll_wait\fP() .\" To be precise: Linux 2.5.44. .\" The interface should be finalized by Linux 2.5.66. Linux 2.6, glibc 2.3.2. .TP \fBepoll_pwait\fP() Linux 2.6.19, glibc 2.6. .TP \fBepoll_pwait2\fP() Linux 5.11. .SH NOTE În timp ce un fir este blocat într\-un apel la \fBepoll_wait\fP(), este posibil ca un alt fir să adauge un descriptor de fișier la instanța \fBepoll\fP aflată în așteptare. Dacă noul descriptor de fișier devine disponibil, acesta va determina deblocarea apelului \fBepoll_wait\fP(). .P Dacă mai mult de \fImaxevents\fP descriptori de fișiere sunt disponibili atunci când se apelează \fBepoll_wait\fP(), atunci apelurile succesive \fBepoll_wait\fP() vor parcurge în cerc setul de descriptori de fișiere disponibili. Acest comportament ajută la evitarea scenariilor de înfometare, în care un proces nu observă că alți descriptori de fișiere sunt gata deoarece se concentrează pe un set de descriptori de fișiere despre care se știe deja că sunt pregătiți. .P Rețineți că este posibil să apelați \fBepoll_wait\fP() pe o instanță \fBepoll\fP a cărei listă de interese este în prezent goală (sau a cărei listă de interese devine goală deoarece descriptorii de fișiere sunt închiși sau eliminați din interes într\-un alt fir). Apelul se va bloca până când un descriptor de fișier este adăugat ulterior la lista de interese (într\-un alt fir de execuție) și acel descriptor de fișier devine disponibil. .SS "Diferențe între biblioteca C și nucleu" Apelurile de sistem brute \fBepoll_pwait\fP() și \fBepoll_pwait2\fP() au un al șaselea argument, \fIsize_t sigsetsize\fP, care specifică dimensiunea în octeți a argumentului \fIsigmask\fP. Funcția de învăluire a glibc \fBepoll_pwait\fP() specifică acest argument ca o valoare fixă (egală cu \fIsizeof(sigset_t)\fP). .SH ERORI Înainte de Linux 2.6.37, o valoare \fItimeout\fP mai mare decât aproximativ \fILONG_MAX / HZ\fP milisecunde este tratată ca \-1 (adică infinit). Astfel, de exemplu, pe un sistem în care \fIsizeof(long)\fP este 4 și valoarea \fIHZ\fP a nucleului este 1000, aceasta înseamnă că timpii de așteptare mai mari de 35,79 minute sunt tratați ca infinit. .SH "CONSULTAȚI ȘI" \fBepoll_create\fP(2), \fBepoll_ctl\fP(2), \fBepoll\fP(7) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .