| lio_listio(3) | Library Functions Manual | lio_listio(3) |
lio_listio - inițiază o listă de cereri de In/Ieș
Biblioteca de timp real (librt, -lrt)
#include <aio.h>
int lio_listio(int mode,
struct aiocb *restrict const aiocb_list[restrict],
int nitems, struct sigevent *restrict sevp);
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:
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ă:
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)).
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).
Funcția lio_listio() poate eșua din următoarele motive:
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ă.
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 |
POSIX.1-2008.
glibc 2.1. POSIX.1-2001.
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.
aio_cancel(3), aio_error(3), aio_fsync(3), aio_return(3), aio_suspend(3), aio_write(3), aio(7)
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.
| 2 mai 2024 | Pagini de manual de Linux 6.9.1 |