Provided by: manpages-ro-dev_4.27.0-1_all 

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ță │ Atribut │ Valoare │
├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
│ 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.9.1 2 mai 2024 lio_listio(3)