.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2003 Free Software Foundation, Inc. .\" and Copyright (C) 2017 Goldwyn Rodrigues .\" .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) .\" This file is distributed according to the GNU General Public License. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH IO_SUBMIT 2 "21 décembre 2020" Linux "Manuel du programmeur Linux" .SH NOM io_submit \- Soumettre un bloc d'entrées\-sorties asynchrones .SH SYNOPSIS .nf \fB#include \fP /* Définit les types nécessaires */ .PP \fBint io_submit(aio_context_t \fP\fIctx_id\fP\fB, long \fP\fInr\fP\fB, struct iocb **\fP\fIiocbpp\fP\fB);\fP .fi .PP \fINote\fP\ : il n'existe pas d'enveloppe pour cet appel système dans la glibc\ ; voir NOTES. .SH DESCRIPTION \fIRemarque\ :\fP cette page décrit l'interface de l'appel système Linux brut. La fonction enveloppe fournie par \fIlibaio\fP utilise un type différent pour le paramètre \fIctx_id\fP. Voir les NOTES. .PP L'appel système \fBio_submit\fP() enregistre \fInr\fP requêtes d'entrées\-sorties asynchrones pour être traitées dans le contexte \fIctx_id\fP. L'argument \fIiocbpp\fP devrait être une table de \fInr\fP blocs de contrôle, qui seront soumis au contexte \fIctx_id\fP. .PP La structure \fIiocb\fP (bloc de contrôle d'E/S) définie dans \fIlinux/aio_abi.h\fP spécifie les paramètres contrôlant les opérations d'E/S. .PP .in +4n .EX #include struct iocb { __u64 aio_data; __u32 PADDED(aio_key, aio_rw_flags); __u16 aio_lio_opcode; __s16 aio_reqprio; __u32 aio_fildes; __u64 aio_buf; __u64 aio_nbytes; __s64 aio_offset; __u64 aio_reserved2; __u32 aio_flags; __u32 aio_resfd; }; .EE .in .PP Les champs de cette structure sont les suivants\ : .TP \fIaio_data\fP Ces données sont copiées dans le champ \fIdata\fP de la structure \fIio_event\fP à la complétion des E/S (voir \fBio_getevents\fP(2)). .TP \fIaio_key\fP Il s'agit d'un champ interne utilisé par le noyau. Il ne doit pas être modifié après un appel à \fBio_submit\fP(). .TP \fIaio_rw_flags\fP Cela définit les options R/W passées avec la structure. Les valeurs acceptées sont\ : .RS .TP \fBRWF_APPEND\fP (depuis Linux 4.16) .\" commit e1fc742e14e01d84d9693c4aca4ab23da65811fb Ajouter des données à la fin du fichier. Voir la description de l'option du même nom dans \fBpwritev2\fP(2) ainsi que la description de \fBO_APPEND\fP dans \fBopen\fP(2). Le champ \fIaio_offset\fP est ignoré. Le décalage du fichier est inchangé. .TP \fBRWF_DSYNC\fP (depuis Linux 4.13) Opération d'écriture complète respectant l'intégrité des données d'E/S synchronisées. Voir la description de l'option du même nom dans \fBpwritev2\fP(2) ainsi que celle de \fBO_DSYNC\fP dans \fBopen\fP(2). .TP \fBRWF_HIPRI\fP (depuis Linux 4.13) Requête de haute priorité, scruter («\ poll\ ») si possible .TP \fBRWF_NOWAIT\fP (depuis Linux 4.14) Ne pas attendre si les E/S bloquent pour les opérations telles que les allocations de blocs de fichiers, la purge de pages sales («\ dirty\ »), les verrous mutex ou un périphérique de bloc congestionné dans le noyau. Si une de ces conditions est remplie, le bloc de contrôle est renvoyé immédiatement avec la valeur de retour \fB\-EAGAIN\fP dans le champ \fIres\fP de la structure \fIio_event\fP (voir \fBio_getevents\fP(2)). .TP \fBRWF_SYNC\fP (depuis Linux 4.13) Opération d'écriture complète respectant l'intégrité des données d'E/S synchronisées. Voir la description de l'option du même nom dans \fBpwritev2\fP(2) ainsi que celle de \fBO_SYNC\fP dans \fBopen\fP(2). .RE .TP \fIaio_lio_opcode\fP Cela définit le type d'E/S à exécuter par la structure \fIiocb\fP. Les valeurs acceptées sont définies par l'enum spécifiée dans \fIlinux/aio_abi.h\fP\ : .IP .in +4n .EX enum { IOCB_CMD_PREAD = 0, IOCB_CMD_PWRITE = 1, IOCB_CMD_FSYNC = 2, IOCB_CMD_FDSYNC = 3, IOCB_CMD_POLL = 5, IOCB_CMD_NOOP = 6, IOCB_CMD_PREADV = 7, IOCB_CMD_PWRITEV = 8, }; .EE .in .TP \fIaio_reqprio\fP Cela définit la priorité des requêtes. .TP \fIaio_fildes\fP Le descripteur du fichier sur lequel les opérations d'E/S sont à réaliser. .TP \fIaio_buf\fP Le tampon utilisé pour le transfert de données des opérations de lecture ou d'écriture. .TP \fIaio_nbytes\fP La taille du tampon pointé par \fIaio_buf\fP. .TP \fIaio_offset\fP La position dans le fichier où les opérations d'E/S sont à réaliser. .TP \fIaio_flags\fP Il s'agit de l'ensemble d'attributs associés à la structure \fIiocb\fP. Les valeurs acceptées sont\ : .RS .TP \fBIOCB_FLAG_RESFD\fP Le contrôle asynchrone des E/S doit signaler le descripteur de fichier mentionné dans \fIaio_resfd\fP à la complétion. .TP \fBIOCB_FLAG_IOPRIO\fP (depuis Linux\ 4.18) .\" commit d9a08a9e616beeccdbd0e7262b7225ffdfa49e92 Interpréter le champ \fIaio_reqprio\fP comme une \fBIOPRIO_VALUE\fP telle que définie par \fIlinux/ioprio.h\fP. .RE .TP \fIaio_resfd\fP Le descripteur de fichier à signaler en cas de fin d'opération d'E/S asynchrone. .SH "VALEUR RENVOYÉE" En cas de succès, \fBio_submit\fP() renvoie le nombre de blocs \fIiocb\fP soumis (qui peut être inférieur à \fInr\fP ou \fB0\fP si \fInr\fP vaut zéro). Pour les valeurs de retour en cas d'échec, consultez la section NOTES. .SH ERREURS .TP \fBEAGAIN\fP Pas assez de ressources pour enregistrer un \fIiocb\fP. .TP \fBEBADF\fP Le descripteur de fichier dans le premier \fIiocb\fP n’est pas valable. .TP \fBEFAULT\fP L'une des structures de données pointe sur une zone invalide. .TP \fBEINVAL\fP Le contexte d’E/S asynchrones indiqué par \fIctx_id\fP n'est pas valable. \fInr\fP est inférieur à zéro. L'\fIiocb\fP à l'adresse \fI*iocbpp[0]\fP n'est pas initialisé correctement, l'opération précisée n'est pas valable pour le descripteur de fichier dans l’\fIiocb\fP ou la valeur dans le champ \fIaio_reqprio\fP n’est pas autorisée . .TP \fBENOSYS\fP \fBio_submit\fP() n'est pas implémenté dans cette architecture. .TP \fBEPERM\fP Le champ \fIaio_reqprio\fP est positionné avec la classe \fBIOPRIO_CLASS_RT\fP, mais le contexte soumettant n'a pas la capacité \fBCAP_SYS_ADMIN\fP. .SH VERSIONS Les appels système d'entrées\-sorties asynchrones sont apparus dans Linux\ 2.5. .SH CONFORMITÉ \fBio_submit\fP() est spécifique à Linux et ne doit pas être utilisé dans des programmes destinés à être portables. .SH NOTES .\" http://git.fedorahosted.org/git/?p=libaio.git La glibc ne fournit pas de fonction autour de cet appel système. Vous pourriez l'invoquer en utilisant \fBsyscall\fP(2), mais vous préférerez sans doute utiliser la fonction enveloppe \fBio_submit\fP() fournie par \fIlibaio\fP. .PP .\" But glibc is confused, since uses 'io_context_t' to declare .\" the system call. Remarquez que la fonction d'enveloppe \fBlibaio\fP utilise un autre type (\fIio_context_t\fP) pour l'argument \fIctx_id\fP. Remarquez également que l'enveloppe \fIlibaio\fP ne suit pas les conventions classiques de la bibliothèque\ C concernant l'indication des erreurs\ : en cas d'erreur, la fonction renvoie un nombre négatif (la valeur négative de l'une des valeurs indiquées dans la section \fBERREURS\fP). Si l'appel système est invoqué avec \fBsyscall\fP(2), la valeur de renvoi suit les conventions classiques pour indiquer l'erreur\ :\ \fB\-1\fP, avec \fIerrno\fP défini à une valeur (positive) de l'erreur. .SH "VOIR AUSSI" .\" .SH AUTHOR .\" Kent Yoder. \fBio_cancel\fP(2), \fBio_destroy\fP(2), \fBio_getevents\fP(2), \fBio_setup\fP(2), \fBaio\fP(7) .SH COLOPHON Cette page fait partie de la publication\ 5.10 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man\-pages/. .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Philippe MENGUAL . Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .