aio_read(3)

NUME
aio_read - citire asincronă

BIBLIOTECA
Biblioteca de timp real (librt, -lrt)

REZUMAT
#include <aio.h>

int aio_read(struct aiocb *aiocbp);

DESCRIERE
Funcția aio_read() pune în coadă cererea de intrare/ieșire descrisă de memoria tampon indicată de aiocbp. Această funcție este analogul asincron al funcției read(2). Argumentele apelului

    read(fd, buf, count)

corespund (în ordine) câmpurilor aio_fildes, aio_buf și aio_nbytes din structura indicată de aiocbp. (A se vedea aio(7) pentru o descriere a structurii aiocb).

Datele sunt citite începând de la poziția absolută aiocbp->aio_offset, indiferent de poziția indicatorului în fișier. După apel, Datele sunt citite începând de la poziția absolută aiocbp->aio_offset, indiferent de poziția curentă a pointerului pe fișier. După acest apel, valoarea poziției curente a indicatorului fișierului este nespecificată.

„Asincron” înseamnă că acest apel returnează imediat ce cererea a fost pusă în coadă; citirea poate fi sau nu finalizată atunci când se returnează apelul. Se poate testa finalizarea folosind aio_error(3). Starea de returnare a unei operații In/Ieș finalizate poate fi obținută prin aio_return(3). Notificarea asincronă a finalizării In/Ieș poate fi obținută prin configurarea corespunzătoare a aiocbp->aio_sigevent; a se vedea sigevent(7) pentru detalii.

Dacă _POSIX_PRIORITIZED_IO este definită, iar acest fișier o acceptă, atunci operația asincronă este transmisă cu o prioritate egală cu cea a procesului apelant minus aiocbp->aio_reqprio.

Câmpul aiocbp->aio_lio_opcode este ignorat.

Nu se citesc date dintr-un fișier normal dincolo de decalajul maxim al acestuia.

VALOAREA RETURNATĂ
În caz de succes, se returnează 0. În caz de eroare, cererea nu este pusă în coadă, se returnează -1, iar errno este configurată pentru a indica eroarea. În cazul în care o eroare este detectată abia mai târziu, aceasta va fi raportată prin intermediul aio_return(3) (returnează starea -1) și aio_error(3) (starea de eroare, oricare ar fi fost cea obținută în errno, cum ar fi EBADF).

ERORI

EAGAIN
    Resurse insuficiente.

EBADF
    aio_fildes nu este un descriptor de fișier valid deschis pentru citire.

EINVAL
    Unul sau mai multe dintre aio_offset, aio_reqprio, sau aio_nbytes nu sunt valide.

ENOSYS
    aio_read() nu este implementată.

EOVERFLOW
    Fișierul este un fișier obișnuit, începem să citim înainte de sfârșitul fișierului și dorim cel puțin un octet, dar poziția de pornire a depășit decalajul maxim pentru acest fișier.

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
aio_read() | 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 blocul de control înainte de utilizare. Blocul de control nu trebuie să fie modificat în timp ce operația de citire este în desfășurare. Zona din memoria tampon din care se citește nu trebuie accesată în timpul operației, 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.

EXEMPLE
A se vedea aio(7).

CONSULTAȚI ȘI
aio_cancel(3), aio_error(3), aio_fsync(3), aio_return(3), aio_suspend(3), aio_write(3), lio_listio(3), aio(7)

TRADUCERE
Traducerea în limba română a acestui manual a fost creată 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.