Provided by: manpages-ro-dev_4.23.1-1_all bug

NUME

       lio_listio - inițiază o listă de cereri de In/Ieș

BIBLIOTECA

       Biblioteca de timp real (librt, -lrt)

SINOPSIS

       #include <aio.h>

       int lio_listio(int mode,
                      struct aiocb *restrict const aiocb_list[restrict],
                      int nitems, struct sigevent *restrict sevp);

DESCRIERE

       Funcția lio_listio() inițiază lista de operații de intrare/ieșire descrise de matricea aiocb_list.

       Operația mode are una dintre următoarele valori:

       LIO_WAIT
              Apelul se blochează până când toate operațiile sunt finalizate. Argumentul sevp este ignorat.

       LIO_NOWAIT
              Operațiile  de  In/Ieș  sunt puse în coadă pentru procesare, iar apelul returnează imediat. Atunci
              când toate operațiile de intrare/ieșire se finalizează, are loc o notificare asincronă,  după  cum
              se  specifică  prin  argumentul  sevp; a se vedea sigevent(3type) pentru detalii. În cazul în care
              sevp este NULL, nu are loc nicio notificare asincronă.

       Argumentul aiocb_list este o matrice de indicatori  la  structurile  aiocb  care  descriu  operațiile  de
       In/Ieș.  Aceste  operații  sunt  executate  într-o  ordine  nespecificată.  Argumentul  nitems  specifică
       dimensiunea matricei aiocb_list. Se ignoră indicatoarele nule din aiocb_list.

       În fiecare bloc de control din aiocb_list,  câmpul  aio_lio_opcode  specifică  operația  de  In/Ieș  care
       urmează să fie inițiată, după cum urmează:

       LIO_READ
              Inițiază  o  operație  de  citire.  Operația  este pusă în coada de așteptare ca pentru un apel la
              aio_read(3) care specifică acest bloc de control.

       LIO_WRITE
              Inițiază o operație de scriere. Operația este pusă în coada de așteptare  ca  pentru  un  apel  la
              aio_write(3) care specifică acest bloc de control.

       LIO_NOP
              Ignoră acest bloc de control.

       Câmpurile  rămase  în  fiecare  bloc  de  control  au  aceleași  semnificații ca și pentru aio_read(3) și
       aio_write(3).  Câmpurile aio_sigevent din fiecare bloc de control pot fi  utilizate  pentru  a  specifica
       notificări pentru operațiile de In/Ieș individuale (a se vedea sigevent(7)).

VALOAREA RETURNATĂ

       Dacă  mode  este LIO_NOWAIT, lio_listio() returnează 0 dacă toate operațiile de In/Ieș sunt puse în coadă
       cu succes. În caz contrar, se returnează -1, iar errno este configurată pentru a indica eroarea.

       Dacă mode este LIO_WAIT, lio_listio() returnează 0 atunci când toate operațiile de In/Ieș s-au  finalizat
       cu succes. În caz contrar, se returnează -1, iar errno este configurată pentru a indica eroarea.

       Starea  de  returnare  din  lio_listio()  oferă  informații  numai  despre  apelul  în sine, nu și despre
       operațiile individuale de In/Ieș. Una sau mai multe dintre operațiile de In/Ieș pot eșua, dar acest lucru
       nu împiedică finalizarea altor operații. Starea operațiilor individuale de In/Ieș din aiocb_list poate fi
       determinată cu ajutorul aio_error(3). Atunci când o operație s-a încheiat, starea de returnare a acesteia
       poate fi obținută folosind aio_return(3). Operațiile individuale de In/Ieș pot eșua din motivele descrise
       în aio_read(3) și aio_write(3).

ERORI-IEȘIRE

       Funcția lio_listio() poate eșua din următoarele motive:

       EAGAIN Resurse insuficiente.

       EAGAIN Numărul de operații de In/Ieș specificat de nitems ar duce la depășirea limitei AIO_MAX.

       EINTR  mode a fost LIO_WAIT și un semnal a fost captat înainte ca toate  operațiunile  de  In/Ieș  să  se
              încheie;  a  se  vedea  signal(7);  (acesta  poate fi chiar unul dintre semnalele utilizate pentru
              notificarea asincronă a finalizării In/Ieș).

       EINVAL mode nu este valid sau nitems depășește limita AIO_LISTIO_MAX.

       EIO    Una sau mai multe dintre operațiile specificate de aiocb_list au eșuat. Aplicația  poate  verifica
              starea fiecărei operații utilizând aio_return(3).

       Dacă  lio_listio()  eșuează  cu  eroarea  EAGAIN,  EINTR  sau  EIO,  atunci  este posibil ca unele dintre
       operațiile din aiocb_list să fi fost inițiate. Dacă lio_listio() eșuează  din  orice  alt  motiv,  atunci
       niciuna dintre operațiile In/Ieș nu a fost inițiată.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │ InterfațăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ lio_listio()                                                            │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       POSIX.1-2008.

ISTORIC

       glibc 2.1.  POSIX.1-2001.

NOTE

       Este  o  idee  bună să se pună la zero blocurile de control înainte de utilizare. Blocurile de control nu
       trebuie să fie modificate în timp ce operațiile de In/Ieș sunt în curs de desfășurare. Zonele  tampon  în
       care  se  citește  sau  din  care  se  scrie nu trebuie accesate în timpul operațiilor, altfel pot apărea
       rezultate nedefinite. Zonele de memorie implicate trebuie să rămână valide.

       Operațiile de In/Ieș simultane care specifică aceeași structură aiocb produc rezultate nedefinite.

CONSULTAȚI ȘI

       aio_cancel(3), aio_error(3), aio_fsync(3), aio_return(3), aio_suspend(3), aio_write(3), aio(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 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.

Pagini de manual de Linux 6.8                      2 mai 2024                                      lio_listio(3)