AIO_WRITE
Section : Manuel du programmeur Linux (
3)
Mise à jour de la version anglaise : 14 novembre 2003
Index
Menu principal
NOM
aio_write - Écriture asynchrone
SYNOPSIS
#include <aio.h>
int aio_write(struct aiocb *aiocbp);
Utilisez
-lrt
à l'édition de liens.
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 ne peut être récupéré à l'achèvement en utilisant
aio_return(3).
Si
O_APPEND
n'est pas défini, 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 défini, 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
contient le code d'erreur.
Si une erreur est détectée plus tard, elle sera signalé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.
- 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.
- EINVAL
-
Une valeur ou plus parmi
aio_offset,
aio_reqprio,
aio_nbytes
n'est pas valide.
- ENOSYS
-
La fonction n'est pas implémentée sur ce système.
CONFORMITÉ
POSIX.1-2001.
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.
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 17 juillet 2008.
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=C man 3 aio_write ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- CONFORMITÉ
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 17 juillet 2008