lio_listio(3) Library Functions Manual lio_listio(3) NUME lio_listio - iniiaza o lista de cereri de In/Ie BIBLIOTECA Biblioteca de timp real (librt, -lrt) REZUMAT #include int lio_listio(int mode, struct aiocb *restrict const aiocb_list[restrict], int nitems, struct sigevent *restrict sevp); DESCRIERE Funcia lio_listio() iniiaza lista de operaii de intrare/ieire descrise de matricea aiocb_list. Operaia mode are una dintre urmatoarele valori: LIO_WAIT Apelul se blocheaza pana cand toate operaiile sunt finalizate. Argumentul sevp este ignorat. LIO_NOWAIT Operaiile de In/Ie sunt puse in coada pentru procesare, iar apelul returneaza imediat. Atunci cand toate operaiile de intrare/ieire se finalizeaza, are loc o notificare asincrona, dupa cum se specifica prin argumentul sevp; a se vedea sigevent(3type) pentru detalii. In cazul in care sevp este NULL, nu are loc nicio notificare asincrona. Argumentul aiocb_list este o matrice de indicatori la structurile aiocb care descriu operaiile de In/Ie. Aceste operaii sunt executate intr-o ordine nespecificata. Argumentul nitems specifica dimensiunea matricei aiocb_list. Se ignora indicatoarele nule din aiocb_list. In fiecare bloc de control din aiocb_list, campul aio_lio_opcode specifica operaia de In/Ie care urmeaza sa fie iniiata, dupa cum urmeaza: LIO_READ Iniiaza o operaie de citire. Operaia este pusa in coada de ateptare ca pentru un apel la aio_read(3) care specifica acest bloc de control. LIO_WRITE Iniiaza o operaie de scriere. Operaia este pusa in coada de ateptare ca pentru un apel la aio_write(3) care specifica acest bloc de control. LIO_NOP Ignora acest bloc de control. Campurile ramase in fiecare bloc de control au aceleai semnificaii ca i pentru aio_read(3) i aio_write(3). Campurile aio_sigevent din fiecare bloc de control pot fi utilizate pentru a specifica notificari pentru operaiile de In/Ie individuale (a se vedea sigevent(7)). VALOAREA RETURNATA Daca mode este LIO_NOWAIT, lio_listio() returneaza 0 daca toate operaiile de In/Ie sunt puse in coada cu succes. In caz contrar, se returneaza -1, iar errno este configurata pentru a indica eroarea. Daca mode este LIO_WAIT, lio_listio() returneaza 0 atunci cand toate operaiile de In/Ie s-au finalizat cu succes. In caz contrar, se returneaza -1, iar errno este configurata pentru a indica eroarea. Starea de returnare din lio_listio() ofera informaii numai despre apelul in sine, nu i despre operaiile individuale de In/Ie. Una sau mai multe dintre operaiile de In/Ie pot eua, dar acest lucru nu impiedica finalizarea altor operaii. Starea operaiilor individuale de In/Ie din aiocb_list poate fi determinata cu ajutorul aio_error(3). Atunci cand o operaie s-a incheiat, starea de returnare a acesteia poate fi obinuta folosind aio_return(3). Operaiile individuale de In/Ie pot eua din motivele descrise in aio_read(3) i aio_write(3). ERORI-IEIRE Funcia lio_listio() poate eua din urmatoarele motive: EAGAIN Resurse insuficiente. EAGAIN Numarul de operaii de In/Ie specificat de nitems ar duce la depairea limitei AIO_MAX. EINTR mode a fost LIO_WAIT i un semnal a fost captat inainte ca toate operaiunile de In/Ie sa se incheie; a se vedea signal(7); (acesta poate fi chiar unul dintre semnalele utilizate pentru notificarea asincrona a finalizarii In/Ie). EINVAL mode nu este valid sau nitems depaete limita AIO_LISTIO_MAX. EIO Una sau mai multe dintre operaiile specificate de aiocb_list au euat. Aplicaia poate verifica starea fiecarei operaii utilizand aio_return(3). Daca lio_listio() eueaza cu eroarea EAGAIN, EINTR sau EIO, atunci este posibil ca unele dintre operaiile din aiocb_list sa fi fost iniiate. Daca lio_listio() eueaza din orice alt motiv, atunci niciuna dintre operaiile In/Ie nu a fost iniiata. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |lio_listio() | Sigurana firelor | MT-Safe | +--------------------------------------+---------------------+---------+ STANDARDE POSIX.1-2008. ISTORIC glibc 2.1. POSIX.1-2001. NOTE Este o idee buna sa se puna la zero blocurile de control inainte de utilizare. Blocurile de control nu trebuie sa fie modificate in timp ce operaiile de In/Ie sunt in curs de desfaurare. Zonele tampon in care se citete sau din care se scrie nu trebuie accesate in timpul operaiilor, altfel pot aparea rezultate nedefinite. Zonele de memorie implicate trebuie sa ramana valide. Operaiile de In/Ie simultane care specifica aceeai structura aiocb produc rezultate nedefinite. CONSULTAI I aio_cancel(3), aio_error(3), aio_fsync(3), aio_return(3), aio_suspend(3), aio_write(3), aio(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 lio_listio(3)