table of contents
AIO_WRITE(3) | Manuel du programmeur Linux | AIO_WRITE(3) |
NOM¶
aio_write - Écriture asynchrone
SYNOPSIS¶
#include <aio.h>
int aio_write(struct aiocb *aiocbp);
Effectuez l'édition des liens avec l'option -lrt.
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 et 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 défini, la donnée est écrite en commençant au décalage absolu du fichier aiocbp->aio_offset, quelle que soit la position actuelle dans 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 » dans 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 définie en conséquence. 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 valable 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 ou plusieurs valeurs parmi aio_offset, aio_reqprio, aio_nbytes ne sont pas valables.
- ENOSYS
- La fonction n'est pas implémentée sur ce système.
CONFORMITɶ
POSIX.1-2001.
NOTES¶
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 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 valables.
VOIR AUSSI¶
aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3), aio_return(3), aio_suspend(3)
COLOPHON¶
Cette page fait partie de la publication 3.23 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <URL:http://alioth.debian.org/projects/perkamon/>.
Alain Portal <URL:http://manpagesfr.free.fr/> (2004-2006). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à <perkamon-l10n-fr@lists.alioth.debian.org>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».
14 novembre 2003 |