io_getevents(2)

NUME
io_getevents - citește evenimentele de In/Ieș asincrone din coada de completare

BIBLIOTECA
Biblioteca C standard (libc, -lc)

Alternativ, biblioteca de In/Ieș asincronă (libaio, -laio); a se vedea VERSIUNI.

SINOPSIS
#include <linux/aio_abi.h>    /* Definiția tipului *io_*. */
#include <sys/syscall.h>      /* Definiția constantelor SYS_* */
#include <unistd.h>

int syscall(SYS_io_getevents, aio_context_t ctx_id,
            long min_nr, long nr, struct io_event *events,
            struct timespec *timeout);

Nota: glibc nu oferă o funcție învăluitoare pentru io_getevents(), fiind necesară utilizarea syscall(2).

DESCRIERE
Notă: această pagină descrie interfața brută de apelare a sistemului Linux. Funcția de învăluire furnizată de libaio utilizează un tip diferit pentru argumentul ctx_id. A se vedea VERSIUNI.

Apelul de sistem io_getevents() încearcă să citească cel puțin min_nr evenimente și până la nr evenimente din coada de completare a contextului AIO specificat de ctx_id.

Argumentul timeout specifică timpul de așteptare a evenimentelor și este specificat ca un timp de așteptare relativ într-o structură timespec(3).

Timpul specificat va fi rotunjit la granularitatea (finețea) ceasului de sistem și se garantează că nu va expira mai devreme.

Specificarea timeout ca NULL înseamnă blocarea pe termen nedefinit până când se obțin cel puțin min_nr evenimente.

VALOAREA RETURNATĂ
În caz de succes, io_getevents() returnează numărul de evenimente citite. Acesta poate fi 0, sau o valoare mai mică decât min_nr, dacă timeout a expirat. Poate fi, de asemenea, o valoare diferită de zero, mai mică decât min_nr, dacă apelul a fost întrerupt de un gestionar de semnal.

Pentru returnarea eșecului, a se vedea VERSIUNI.

ERORI-IEȘIRE

EFAULT
    Fie events, fie timeout este un indicator nevalid.

EINTR
    Întrerupt de un gestionar de semnal; a se vedea signal(7).

EINVAL
    ctx_id nu este valid. min_nr este în afara intervalului sau nr este în afara intervalului.

ENOSYS
    io_getevents() nu este implementat pe această arhitectură.

VERSIUNI
Probabil că doriți să utilizați funcția de învăluire io_getevents() furnizată de libaio.

Rețineți că funcția de învăluire libaio utilizează un tip diferit (io_context_t) pentru argumentul ctx_id. Rețineți, de asemenea, că funcția de învăluire libaio nu respectă convențiile obișnuite ale bibliotecii C pentru indicarea erorilor: în caz de eroare, aceasta returnează un număr de eroare negat (negativul uneia dintre valorile enumerate în ERRORS). Dacă apelul de sistem este invocat prin syscall(2), atunci valoarea de returnare urmează convențiile obișnuite pentru indicarea unei erori: -1, cu errno configurată la o valoare (pozitivă) care indică eroarea.

STANDARDE
Linux.

ISTORIC
Linux 2.5.

ERORI
Un ctx_id nevalid poate cauza o eroare de segmentare în loc să genereze eroarea EINVAL.

CONSULTAȚI ȘI
io_cancel(2), io_destroy(2), io_setup(2), io_submit(2), timespec(3), aio(7), time(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.