Provided by:
manpages-fr_1.67.0-1_all 
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
aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3), aio_return(3),
aio_suspend(3)
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.
14 novembre 2003 AIO_WRITE(3)