aio_read(3) Library Functions Manual aio_read(3)

aio_read - Lecture asynchrone

Bibliothèque de temps réel (librt, -lrt)

#include <aio.h>
int aio_read(struct aiocb *aiocbp);

La fonction aio_read() met en file d'attente les requêtes d'E/S décrites par le tampon pointé par aiocb. Cette fonction est la version asynchrone de read(2). Les arguments de l'appel


read(fd, buf, count)

correspondent (dans l'ordre) au membre aio_fildes, aio_buf et aio_nbytes de la structure pointée par aiocbp. Consultez aio(7) pour une description de la structure aiocb.

La donnée est lue en commençant à la position absolue aiocbp->aio_offset, quelle que soit la position actuelle du pointeur sur le fichier. Après cet appel, la valeur de la position courante du pointeur du fichier est indéfinie.

« Asynchrone » signifie que cet appel renvoie aussitôt que la requête a été mise dans la file d'attente ; la lecture peut être ou ne pas être achevée lorsque l'appel renvoie. On peut tester cet achèvement en utilisant aio_error(3). La valeur de retour d'une opération d'E/S terminée peut être obtenue avec aio_return(3). La notification asynchrone de la fin de l'E/S peut être obtenue en définissant aiocbp->aio_sigevent de façon appropriée. Consultez sigevent(3type) pour plus de détails.

Si _POSIX_PRIORITIZED_IO est définie et si le fichier le gère, l'opération asynchrone est soumise à une priorité égale à celle du processus appelant moins aiocbp->aio_reqprio.

Le membre aiocbp->aio_lio_opcode est ignoré.

Aucune donnée n'est lue dans un fichier normal au-delà de son décalage maximum.

En cas de réussite, 0 est renvoyé. En cas d'erreur, la requête n'est pas mise dans la file d'attente, -1 est renvoyé et errno est positionnée pour indiquer l'erreur. Si une erreur est détectée plus tard, elle sera signalée à l'aide de aio_return(3) (état de retour -1) et aio_error(3) (état d'erreur : tout ce qu'on veut, récupéré dans errno, comme EBADF).

Ressources insuffisantes.
aio_fildes n'est pas un descripteur de fichier valable ouvert en lecture.
Une ou plusieurs valeurs parmi aio_offset, aio_reqprio ou aio_nbytes ne sont pas valables.
aio_read() n'est pas implémenté.
Le fichier est un fichier normal, nous avons commencé la lecture avant la fin de fichier et voulons au moins un octet, mais la position de départ a dépassé le décalage maximum du fichier.

Pour une explication des termes utilisés dans cette section, consulter attributes(7).

Interface Attribut Valeur
aio_read() Sécurité des threads MT-Safe

POSIX.1-2008.

glibc 2.1. POSIX.1-2001.

C'est une bonne idée de mettre à zéro le bloc de contrôle avant de l'utiliser. Ce bloc de contrôle ne doit pas être modifié pendant l'opération de lecture. Il ne faut pas accéder à la zone tampon à lire pendant l'opération, sinon des résultats indéfinis peuvent survenir. Les zones mémoires atteintes doivent rester valables.

Des opérations d'E/S simultanées spécifiant la même structure aiocb produisent des résultats indéfinis.

Consultez aio(7).

aio_cancel(3), aio_error(3), aio_fsync(3), aio_return(3), aio_suspend(3), aio_write(3), lio_listio(3), aio(7)

La traduction française de cette page de manuel a été créée par Christophe Blaess https://www.blaess.fr/christophe/, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Thomas Vincent <tvincent@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

2 mai 2024 Pages du manuel de Linux 6.8