man aio_write (Fonctions bibliothèques) - Écriture asynchrone.

NOM

aio_write - Écriture asynchrone.

SYNOPSIS

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

DESCRIPTION

La fonction aio_write sollicite un « n = write(fd, buf, count) » asynchrone avec fd, buf, count donnés respectivement par aiocbp->aio_fildes, aiocbp->aio_buf, aiocbp->aio_nbytes, L'état de retour n peut être récupéré à l'achèvement en utilisant aio_return(3).

Si O_APPEND n'est pas positionné, la donnée est écrite en commençant au décalage absolu du fichier aiocbp->aio_offset, quelque puisse être la position actuelle du pointeur sur le fichier. Si O_APPEND est positionné, la donnée est écrite à la fin du fichier. Après cette requête, la valeur de la position « courante » du pointeur sur le fichier est indéfinie.

« Asynchrone » signifie que cet appel s'achève aussitôt que la requête ait été mise dans la file d'attente ; l'écriture peut être ou ne pas être achevée lorsque l'appel s'achève. On peut tester cet achèvement en utilisant aio_error(3).

Si _POSIX_PRIORITIZED_IO est définie et si le fichier le supporte, 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 écrite dans un fichier régulier au-delà de son décalage maximum.

VALEUR RENVOYÉE

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 en conséquence. Si une erreur est détectée plus tard, elle sera rapportée via 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).

ERREURS

EAGAIN
Ressources insuffisantes.
EBADF
aio_fildes n'est pas un descripteur de fichier valide ouvert en écriture.
EINVAL
Une valeur ou plus parmi aio_offset, aio_reqprio, aio_nbytes n'est pas valide.
EFBIG
Le fichier est un fichier régulier, nous voulons écrire au moins un octet, mais la position de départ est égale ou au-delà du décalage maximum du fichier.
ENOSYS
La fonction n'est pas implémentée sur ce système.

NOTES

C'est une bonne idée que 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 d'écriture. Il ne faut pas accéder à la zone tampon à écrire pendant l'opération ou bien des résultats indéfinis peuvent survenir. Les zones mémoires atteintes doivent rester valides.

CONFORMITÉ

POSIX 1003.1-2003

VOIR AUSSI

TRADUCTION

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 6 juillet 2005 et révisée le 14 décembre 2005.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=en man 3 aio_write ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.