aio_write(3) Library Functions Manual aio_write(3) NOM aio_write - Ecriture asynchrone BIBLIOTHEQUE Bibliotheque de temps reel (librt, -lrt) SYNOPSIS #include int aio_write(struct aiocb *aiocbp); DESCRIPTION La fonction aio_write() met en file d'attente la requete d'E/S decrite par le tampon pointe par aiocbp. Cette fonction est la version asynchrone de write(2). Les parametres de l'appel sont write(fd, buf, count) correspondent (dans l'ordre) au membre aio_fildes, aio_buf et aio_nbytes de la structure pointee par aiocbp. Consultez aio(7) pour une description de la structure aiocb. Si O_APPEND n'est pas defini, la donnee est ecrite en commencant a la position absolue aiocbp->aio_offset, quelle que soit la position actuelle dans le fichier. Si O_APPEND est defini, les donnees sont ecrites a la fin du fichier dans le meme ordre que aio_write(). Apres cet appel, la valeur de la position << courante >> dans le fichier est indefinie. << Asynchrone >> signifie que cet appel se termine aussitot que la requete a ete mise dans la file d'attente ; l'ecriture peut etre ou ne pas etre achevee lorsque l'appel termine. On peut tester cet achevement en utilisant aio_error(3). La valeur de retour d'une operation d'E/S terminee peut etre obtenue avec aio_return(3). La notification asynchrone de la fin de l'E/S peut etre obtenue en definissant aiocbp->aio_sigevent de facon appropriee. Consultez sigevent(3type) pour plus de details. Si _POSIX_PRIORITIZED_IO est definie et si le fichier le gere, l'operation asynchrone est soumise a une priorite egale a celle du processus appelant moins aiocbp->aio_reqprio. Le membre aiocbp->aio_lio_opcode est ignore. Aucune donnee n'est ecrite dans un fichier normal au-dela de son decalage maximum. VALEUR RENVOYEE En cas de reussite, 0 est renvoye. En cas d'erreur, la requete n'est pas mise dans la file d'attente, -1 est renvoye et errno est positionnee pour indiquer l'erreur. Si une erreur est detectee plus tard, elle sera signalee a l'aide de aio_return(3) (etat de retour -1) et aio_error(3) (etat d'erreur : tout ce qu'on veut, recupere dans errno, comme EBADF). ERREURS EAGAIN Ressources insuffisantes. EBADF aio_fildes n'est pas un descripteur de fichier valable ouvert en ecriture. EFBIG Le fichier est un fichier normal, nous voulons ecrire au moins un octet, mais la position de depart est egale ou au-dela du decalage maximum du fichier. EINVAL Une ou plusieurs valeurs parmi aio_offset, aio_reqprio, aio_nbytes ne sont pas valables. ENOSYS aio_write() n'est pas implemente. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |aio_write() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ STANDARDS POSIX.1-2008. HISTORIQUE glibc 2.1. POSIX.1-2001. NOTES C'est une bonne idee de mettre a zero le bloc de controle avant de l'utiliser. Ce bloc de controle ne doit pas etre modifie pendant l'operation d'ecriture. Il ne faut pas acceder a la zone tampon a ecrire pendant l'operation car des resultats indefinis peuvent survenir. Les zones memoires atteintes doivent rester valables. Des operations d'E/S simultanees specifiant la meme structure aiocb produisent des resultats indefinis. VOIR AUSSI aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3), aio_return(3), aio_suspend(3), lio_listio(3), aio(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Thomas Vincent Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 aio_write(3)