# French translation of manpages
# This file is distributed under the same license as the manpages-l10n package.
# Copyright © of this file:
# Christophe Blaess , 1996-2003.
# Stéphan Rafin , 2002.
# Thierry Vignaud , 1999, 2002.
# François Micaux, 2002.
# Alain Portal , 2003-2008.
# Jean-Philippe Guérard , 2005-2006.
# Jean-Luc Coulon (f5ibh) , 2006-2007.
# Julien Cristau , 2006-2007.
# Thomas Huriaux , 2006-2008.
# Nicolas François , 2006-2008.
# Florentin Duneau , 2006-2010.
# Simon Paillard , 2006.
# Denis Barbier , 2006, 2010.
# David Prévot , 2010, 2012, 2013.
# Thomas Vincent , 2018.
# Jean-Pierre Giraud , 2021-2024.
msgid ""
msgstr ""
"Project-Id-Version: manpages-l10n\n"
"POT-Creation-Date: 2024-06-01 05:41+0200\n"
"PO-Revision-Date: 2024-02-18 00:36+0100\n"
"Last-Translator: Jean-Pierre Giraud \n"
"Language-Team: French \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Lokalize 22.12.1\n"
#. type: TH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "AIO"
msgstr "AIO"
#. type: TH
#: archlinux debian-unstable opensuse-tumbleweed
#, no-wrap
msgid "2024-05-02"
msgstr "2 mai 2024"
#. type: TH
#: archlinux debian-unstable
#, no-wrap
msgid "Linux man-pages 6.8"
msgstr "Pages du manuel de Linux 6.8"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "NAME"
msgstr "NOM"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "aio - POSIX asynchronous I/O overview"
msgstr "aio - Vue d'ensemble des entrées-sorties (E/S) asynchrones POSIX"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "DESCRIPTION"
msgstr "DESCRIPTION"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The POSIX asynchronous I/O (AIO) interface allows applications to initiate "
"one or more I/O operations that are performed asynchronously (i.e., in the "
"background). The application can elect to be notified of completion of the "
"I/O operation in a variety of ways: by delivery of a signal, by "
"instantiation of a thread, or no notification at all."
msgstr ""
"L'interface d'E/S asynchrones (AIO pour « asynchronous I/O ») POSIX permet "
"aux applications de déclencher une ou plusieurs opérations d'E/S réalisées "
"de façon asynchrone (c'est-à-dire en arrière-plan). La fin d'une opération "
"d'E/S peut être notifiée à l'application de différentes façons au choix : "
"distribution d'un signal, instanciation d'un thread ou absence de "
"notification."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "The POSIX AIO interface consists of the following functions:"
msgstr "L'interface AIO POSIX est composée des fonctions suivantes :"
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B(3)"
msgstr "B(3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Enqueue a read request. This is the asynchronous analog of B(2)."
msgstr ""
"Placer en file d'attente une requête de lecture. C'est l'équivalent "
"asynchrone de B(2)."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B(3)"
msgstr "B(3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Enqueue a write request. This is the asynchronous analog of B(2)."
msgstr ""
"Placer en file d'attente une requête d'écriture. C'est l'équivalent "
"asynchrone de B(2)."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B(3)"
msgstr "B(3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Enqueue a sync request for the I/O operations on a file descriptor. This is "
"the asynchronous analog of B(2) and B(2)."
msgstr ""
"Placer en file d'attente une requête de synchronisation pour des opérations "
"d'E/S sur un descripteur de fichier. C'est l'équivalent asynchrone de "
"B(2) et B(2)."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B(3)"
msgstr "B(3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Obtain the error status of an enqueued I/O request."
msgstr "Obtenir l'état d'erreur d'une requête d'E/S placée en file d'attente."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B(3)"
msgstr "B(3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Obtain the return status of a completed I/O request."
msgstr "Obtenir l'état de retour d'une requête d'E/S terminée."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B(3)"
msgstr "B(3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Suspend the caller until one or more of a specified set of I/O requests "
"completes."
msgstr ""
"Suspendre l'appelant jusqu'à la fin d'une ou plusieurs requêtes d'E/S d'un "
"ensemble indiqué."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B(3)"
msgstr "B(3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Attempt to cancel outstanding I/O requests on a specified file descriptor."
msgstr ""
"Essayer d'annuler des requêtes d'E/S en cours sur un descripteur de fichier "
"indiqué."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B(3)"
msgstr "B(3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Enqueue multiple I/O requests using a single function call."
msgstr ""
"Placer en file d'attente plusieurs requêtes d'E/S à partir d'un seul appel "
"de fonction."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I (\"asynchronous I/O control block\") structure defines "
"parameters that control an I/O operation. An argument of this type is "
"employed with all of the functions listed above. This structure has the "
"following form:"
msgstr ""
"La structure I (« asynchronous I/O control block », ou bloc de "
"contrôle d'E/S asynchrones) définit les paramètres de contrôle d'une "
"opération d'E/S. Un argument de ce type est utilisé avec toutes les "
"fonctions précédentes. Cette structure est de la forme suivante :"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ""
"#include Eaiocb.hE\n"
"\\&\n"
"struct aiocb {\n"
" /* The order of these fields is implementation-dependent */\n"
"\\&\n"
" int aio_fildes; /* File descriptor */\n"
" off_t aio_offset; /* File offset */\n"
" volatile void *aio_buf; /* Location of buffer */\n"
" size_t aio_nbytes; /* Length of transfer */\n"
" int aio_reqprio; /* Request priority */\n"
" struct sigevent aio_sigevent; /* Notification method */\n"
" int aio_lio_opcode; /* Operation to be performed;\n"
" lio_listio() only */\n"
"\\&\n"
" /* Various implementation-internal fields not shown */\n"
"};\n"
"\\&\n"
"/* Operation codes for \\[aq]aio_lio_opcode\\[aq]: */\n"
"\\&\n"
"enum { LIO_READ, LIO_WRITE, LIO_NOP };\n"
msgstr ""
"#include Eaiocb.hE\n"
"\\&\n"
"struct aiocb {\n"
" /* L'ordre de ces champs dépend de l'implémentation */\n"
"\\&\n"
" int aio_fildes; /* Descripteur de fichier */\n"
" off_t aio_offset; /* Position dans le fichier */\n"
" volatile void *aio_buf; /* Emplacement du tampon */\n"
" size_t aio_nbytes; /* Longueur de transfert */\n"
" int aio_reqprio; /* Priorité de requête */\n"
" struct sigevent aio_sigevent; /* Méthode de notification */\n"
" int aio_lio_opcode; /* Opération à réaliser ;\n"
" lio_listio() seulement */\n"
"\\&\n"
" /* Divers champs internes à l'implémentation ne sont pas montrés */\n"
"};\n"
"\\&\n"
"/* Codes opératoires pour « aio_lio_opcode » : */\n"
"\\&\n"
"enum { LIO_READ, LIO_WRITE, LIO_NOP };\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "The fields of this structure are as follows:"
msgstr "Les membres de cette structure sont les suivants :"
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "The file descriptor on which the I/O operation is to be performed."
msgstr ""
"Le descripteur du fichier sur lequel les opérations d'E/S sont à réaliser."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "This is the file offset at which the I/O operation is to be performed."
msgstr "La position dans le fichier où les opérations d'E/S sont à réaliser."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "This is the buffer used to transfer data for a read or write operation."
msgstr ""
"Le tampon utilisé pour le transfert de données des opérations de lecture ou "
"d'écriture."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "This is the size of the buffer pointed to by I."
msgstr "La taille du tampon pointé par I."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This field specifies a value that is subtracted from the calling thread's "
"real-time priority in order to determine the priority for execution of this "
"I/O request (see B(3)). The specified value must be "
"between 0 and the value returned by I. "
"This field is ignored for file synchronization operations."
msgstr ""
"Valeur à soustraire de la priorité temps-réel du thread de l'appelant pour "
"déterminer la priorité d'exécution de cette requête d'E/S (consultez "
"B(3)). La valeur indiquée doit être entre 0 et la "
"valeur renvoyée par I. Ce champ est ignoré "
"lors des opérations de synchronisation de fichier."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid ""
"This field is a structure that specifies how the caller is to be notified "
"when the asynchronous I/O operation completes. Possible values for "
"I are B, B, and "
"B. See B(3type) for further details."
msgstr ""
"Structure indiquant comment l'appelant sera notifié de la fin d'une "
"opération d'E/S asynchrone. Les valeurs de I "
"peuvent être B, B et B. Consultez "
"B(3type) pour plus de précisions."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "The type of operation to be performed; used only for B(3)."
msgstr ""
"Le type d'opération à réaliser, utilisé seulement pour B(3)."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"In addition to the standard functions listed above, the GNU C library "
"provides the following extension to the POSIX AIO API:"
msgstr ""
"En plus des fonctions standard précédentes, la bibliothèque C du projet GNU "
"fournit l'extension suivante à l'API AIO POSIX :"
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B(3)"
msgstr "B(3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Set parameters for tuning the behavior of the glibc POSIX AIO implementation."
msgstr ""
"Configurer les paramètres pour régler le comportement de l'implémentation "
"AIO POSIX de la glibc."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "ERRORS"
msgstr "ERREURS"
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B"
msgstr "B"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I field of the I structure was less than 0, or was "
"greater than the limit returned by the call "
"I."
msgstr ""
"Le champ I de la structure I était inférieur à 0 ou "
"supérieur à la limite renvoyée par l'appel "
"I."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "STANDARDS"
msgstr "STANDARDS"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid "POSIX.1-2008."
msgstr "POSIX.1-2008."
#. type: SH
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "HISTORY"
msgstr "HISTORIQUE"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid "POSIX.1-2001. glibc 2.1."
msgstr "POSIX.1-2001. glibc 2.1."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "NOTES"
msgstr "NOTES"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"It is a good idea to zero out the control block buffer before use (see "
"B(3)). The control block buffer and the buffer pointed to by "
"I must not be changed while the I/O operation is in progress. "
"These buffers must remain valid until the I/O operation completes."
msgstr ""
"Il est conseillé de mettre à zéro le tampon de bloc de contrôle avant "
"utilisation (consultez B(3)). Le tampon de bloc de contrôle et le "
"tampon pointé par I ne doivent pas être modifiés pendant "
"l'exécution d'une opération d'E/S. Ces tampons doivent rester valables "
"jusqu'à la fin de l'opération d'E/S."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Simultaneous asynchronous read or write operations using the same I "
"structure yield undefined results."
msgstr ""
"Les opérations de lecture ou d'écriture asynchrones simultanées qui "
"utilisent la même structure I produisent des résultats indéfinis."
#. http://lse.sourceforge.net/io/aio.html
#. http://lse.sourceforge.net/io/aionotes.txt
#. http://lwn.net/Articles/148755/
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The current Linux POSIX AIO implementation is provided in user space by "
"glibc. This has a number of limitations, most notably that maintaining "
"multiple threads to perform I/O operations is expensive and scales poorly. "
"Work has been in progress for some time on a kernel state-machine-based "
"implementation of asynchronous I/O (see B(2), B(2), "
"B(2), B(2), B(2)), but this "
"implementation hasn't yet matured to the point where the POSIX AIO "
"implementation can be completely reimplemented using the kernel system calls."
msgstr ""
"L'actuelle implémentation AIO POSIX de Linux est fournie en espace "
"utilisateur par la glibc. De nombreuses limites existent, en particulier le "
"maintien de plusieurs threads pour réaliser des opérations d'E/S est très "
"coûteux et monte mal en charge. L'implémentation d'E/S asynchrones basée sur "
"l'état de la machine est en travaux depuis un moment sur le noyau (consultez "
"B(2), B(2), B(2), B(2), "
"B(2)), mais cette implémentation n'a pas encore atteint le "
"niveau où l'implémentation AIO POSIX peut être entièrement réimplémentée en "
"utilisant les appels système du noyau."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "EXAMPLES"
msgstr "EXEMPLES"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The program below opens each of the files named in its command-line "
"arguments and queues a request on the resulting file descriptor using "
"B(3). The program then loops, periodically monitoring each of the "
"I/O operations that is still in progress using B(3). Each of the "
"I/O requests is set up to provide notification by delivery of a signal. "
"After all I/O requests have completed, the program retrieves their status "
"using B(3)."
msgstr ""
"Le programme suivant ouvre chaque fichier nommé en argument de sa ligne de "
"commande et place une requête sur le descripteur de fichier dans la file "
"avec B(3). Le programme boucle ensuite, en surveillant "
"périodiquement toutes les opérations d'E/S en cours avec B(3). "
"Chaque requête d'E/S est configurée pour fournir une notification en "
"distribuant un signal. Quand toutes les requêtes d'E/S sont terminées, le "
"programme récupère leur état avec B(3)."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The B signal (generated by typing control-\\e) causes the program "
"to request cancelation of each of the outstanding requests using "
"B(3)."
msgstr ""
"Le signal B (créé en tapant Contrôle-\\e) provoque la demande "
"d'annulation de chaque requête en cours avec B(3)."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Here is an example of what we might see when running this program. In this "
"example, the program queues two requests to standard input, and these are "
"satisfied by two lines of input containing \"abc\" and \"x\"."
msgstr ""
"Voici un exemple de ce qui pourrait être affiché lors de l'exécution de ce "
"programme. Dans cet exemple, le programme place en file d'attente deux "
"requêtes sur l'entrée standard et deux lignes de saisie contenant « abc » et "
"« x » y répondent."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"$ B<./a.out /dev/stdin /dev/stdin>\n"
"opened /dev/stdin on descriptor 3\n"
"opened /dev/stdin on descriptor 4\n"
"aio_error():\n"
" for request 0 (descriptor 3): In progress\n"
" for request 1 (descriptor 4): In progress\n"
"B\n"
"I/O completion signal received\n"
"aio_error():\n"
" for request 0 (descriptor 3): I/O succeeded\n"
" for request 1 (descriptor 4): In progress\n"
"aio_error():\n"
" for request 1 (descriptor 4): In progress\n"
"B\n"
"I/O completion signal received\n"
"aio_error():\n"
" for request 1 (descriptor 4): I/O succeeded\n"
"All I/O requests completed\n"
"aio_return():\n"
" for request 0 (descriptor 3): 4\n"
" for request 1 (descriptor 4): 2\n"
msgstr ""
"$ B<./a.out /dev/stdin /dev/stdin>\n"
"/dev/stdin ouvert sur le descripteur 3\n"
"/dev/stdin ouvert sur le descripteur 4\n"
"aio_error():\n"
" pour la requête 0 (descripteur 3) : En cours\n"
" pour la requête 1 (descripteur 4) : En cours\n"
"B\n"
"Signal de fin d'E/S reçu\n"
"aio_error():\n"
" pour la requête 0 (descripteur 3) : E/S réussie\n"
" pour la requête 1 (descripteur 4) : En cours\n"
"aio_error():\n"
" pour la requête 1 (descripteur 4) : En cours\n"
"B\n"
"Signal de fin d'E/S reçu\n"
"aio_error():\n"
" pour la requête 1 (descripteur 4) : E/S réussie\n"
"Toutes les requêtes d'E/S sont terminées\n"
"aio_return():\n"
" pour la requête 0 (descripteur 3) : 4\n"
" pour la requête 1 (descripteur 4) : 2\n"
#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Program source"
msgstr "Source du programme"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ""
"#include Efcntl.hE\n"
"#include Estdlib.hE\n"
"#include Eunistd.hE\n"
"#include Estdio.hE\n"
"#include Eerrno.hE\n"
"#include Eaio.hE\n"
"#include Esignal.hE\n"
"\\&\n"
"#define BUF_SIZE 20 /* Size of buffers for read operations */\n"
"\\&\n"
"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
"\\&\n"
"struct ioRequest { /* Application-defined structure for tracking\n"
" I/O requests */\n"
" int reqNum;\n"
" int status;\n"
" struct aiocb *aiocbp;\n"
"};\n"
"\\&\n"
"static volatile sig_atomic_t gotSIGQUIT = 0;\n"
" /* On delivery of SIGQUIT, we attempt to\n"
" cancel all outstanding I/O requests */\n"
"\\&\n"
"static void /* Handler for SIGQUIT */\n"
"quitHandler(int sig)\n"
"{\n"
" gotSIGQUIT = 1;\n"
"}\n"
"\\&\n"
"#define IO_SIGNAL SIGUSR1 /* Signal used to notify I/O completion */\n"
"\\&\n"
"static void /* Handler for I/O completion signal */\n"
"aioSigHandler(int sig, siginfo_t *si, void *ucontext)\n"
"{\n"
" if (si-Esi_code == SI_ASYNCIO) {\n"
" write(STDOUT_FILENO, \"I/O completion signal received\\en\", 31);\n"
"\\&\n"
" /* The corresponding ioRequest structure would be available as\n"
" struct ioRequest *ioReq = si-Esi_value.sival_ptr;\n"
" and the file descriptor would then be available via\n"
" ioReq-Eaiocbp-Eaio_fildes */\n"
" }\n"
"}\n"
"\\&\n"
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" struct sigaction sa;\n"
" int s;\n"
" int numReqs; /* Total number of queued I/O requests */\n"
" int openReqs; /* Number of I/O requests still in progress */\n"
"\\&\n"
" if (argc E 2) {\n"
" fprintf(stderr, \"Usage: %s EpathnameE EpathnameE...\\en\",\n"
" argv[0]);\n"
" exit(EXIT_FAILURE);\n"
" }\n"
"\\&\n"
" numReqs = argc - 1;\n"
"\\&\n"
" /* Allocate our arrays. */\n"
"\\&\n"
" struct ioRequest *ioList = calloc(numReqs, sizeof(*ioList));\n"
" if (ioList == NULL)\n"
" errExit(\"calloc\");\n"
"\\&\n"
" struct aiocb *aiocbList = calloc(numReqs, sizeof(*aiocbList));\n"
" if (aiocbList == NULL)\n"
" errExit(\"calloc\");\n"
"\\&\n"
" /* Establish handlers for SIGQUIT and the I/O completion signal. */\n"
"\\&\n"
" sa.sa_flags = SA_RESTART;\n"
" sigemptyset(&sa.sa_mask);\n"
"\\&\n"
" sa.sa_handler = quitHandler;\n"
" if (sigaction(SIGQUIT, &sa, NULL) == -1)\n"
" errExit(\"sigaction\");\n"
"\\&\n"
" sa.sa_flags = SA_RESTART | SA_SIGINFO;\n"
" sa.sa_sigaction = aioSigHandler;\n"
" if (sigaction(IO_SIGNAL, &sa, NULL) == -1)\n"
" errExit(\"sigaction\");\n"
"\\&\n"
" /* Open each file specified on the command line, and queue\n"
" a read request on the resulting file descriptor. */\n"
"\\&\n"
" for (size_t j = 0; j E numReqs; j++) {\n"
" ioList[j].reqNum = j;\n"
" ioList[j].status = EINPROGRESS;\n"
" ioList[j].aiocbp = &aiocbList[j];\n"
"\\&\n"
" ioList[j].aiocbp-Eaio_fildes = open(argv[j + 1], O_RDONLY);\n"
" if (ioList[j].aiocbp-Eaio_fildes == -1)\n"
" errExit(\"open\");\n"
" printf(\"opened %s on descriptor %d\\en\", argv[j + 1],\n"
" ioList[j].aiocbp-Eaio_fildes);\n"
"\\&\n"
" ioList[j].aiocbp-Eaio_buf = malloc(BUF_SIZE);\n"
" if (ioList[j].aiocbp-Eaio_buf == NULL)\n"
" errExit(\"malloc\");\n"
"\\&\n"
" ioList[j].aiocbp-Eaio_nbytes = BUF_SIZE;\n"
" ioList[j].aiocbp-Eaio_reqprio = 0;\n"
" ioList[j].aiocbp-Eaio_offset = 0;\n"
" ioList[j].aiocbp-Eaio_sigevent.sigev_notify = SIGEV_SIGNAL;\n"
" ioList[j].aiocbp-Eaio_sigevent.sigev_signo = IO_SIGNAL;\n"
" ioList[j].aiocbp-Eaio_sigevent.sigev_value.sival_ptr =\n"
" &ioList[j];\n"
"\\&\n"
" s = aio_read(ioList[j].aiocbp);\n"
" if (s == -1)\n"
" errExit(\"aio_read\");\n"
" }\n"
"\\&\n"
" openReqs = numReqs;\n"
"\\&\n"
" /* Loop, monitoring status of I/O requests. */\n"
"\\&\n"
" while (openReqs E 0) {\n"
" sleep(3); /* Delay between each monitoring step */\n"
"\\&\n"
" if (gotSIGQUIT) {\n"
"\\&\n"
" /* On receipt of SIGQUIT, attempt to cancel each of the\n"
" outstanding I/O requests, and display status returned\n"
" from the cancelation requests. */\n"
"\\&\n"
" printf(\"got SIGQUIT; canceling I/O requests: \\en\");\n"
"\\&\n"
" for (size_t j = 0; j E numReqs; j++) {\n"
" if (ioList[j].status == EINPROGRESS) {\n"
" printf(\" Request %zu on descriptor %d:\", j,\n"
" ioList[j].aiocbp-Eaio_fildes);\n"
" s = aio_cancel(ioList[j].aiocbp-Eaio_fildes,\n"
" ioList[j].aiocbp);\n"
" if (s == AIO_CANCELED)\n"
" printf(\"I/O canceled\\en\");\n"
" else if (s == AIO_NOTCANCELED)\n"
" printf(\"I/O not canceled\\en\");\n"
" else if (s == AIO_ALLDONE)\n"
" printf(\"I/O all done\\en\");\n"
" else\n"
" perror(\"aio_cancel\");\n"
" }\n"
" }\n"
"\\&\n"
" gotSIGQUIT = 0;\n"
" }\n"
"\\&\n"
" /* Check the status of each I/O request that is still\n"
" in progress. */\n"
"\\&\n"
" printf(\"aio_error():\\en\");\n"
" for (size_t j = 0; j E numReqs; j++) {\n"
" if (ioList[j].status == EINPROGRESS) {\n"
" printf(\" for request %zu (descriptor %d): \",\n"
" j, ioList[j].aiocbp-Eaio_fildes);\n"
" ioList[j].status = aio_error(ioList[j].aiocbp);\n"
"\\&\n"
" switch (ioList[j].status) {\n"
" case 0:\n"
" printf(\"I/O succeeded\\en\");\n"
" break;\n"
" case EINPROGRESS:\n"
" printf(\"In progress\\en\");\n"
" break;\n"
" case ECANCELED:\n"
" printf(\"Canceled\\en\");\n"
" break;\n"
" default:\n"
" perror(\"aio_error\");\n"
" break;\n"
" }\n"
"\\&\n"
" if (ioList[j].status != EINPROGRESS)\n"
" openReqs--;\n"
" }\n"
" }\n"
" }\n"
"\\&\n"
" printf(\"All I/O requests completed\\en\");\n"
"\\&\n"
" /* Check status return of all I/O requests. */\n"
"\\&\n"
" printf(\"aio_return():\\en\");\n"
" for (size_t j = 0; j E numReqs; j++) {\n"
" ssize_t s;\n"
"\\&\n"
" s = aio_return(ioList[j].aiocbp);\n"
" printf(\" for request %zu (descriptor %d): %zd\\en\",\n"
" j, ioList[j].aiocbp-Eaio_fildes, s);\n"
" }\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
"#include Efcntl.hE\n"
"#include Estdlib.hE\n"
"#include Eunistd.hE\n"
"#include Estdio.hE\n"
"#include Eerrno.hE\n"
"#include Eaio.hE\n"
"#include Esignal.hE\n"
"\\&\n"
"#define BUF_SIZE 20 /* Taille des tampons pour les opérations de lecture */\n"
"\\&\n"
"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
"\\&\n"
"struct ioRequest { /* Structure spécifique à l'application\n"
" pour suivre les requêtes d'E/S */\n"
" int reqNum;\n"
" int status;\n"
" struct aiocb *aiocbp;\n"
"};\n"
"\\&\n"
"static volatile sig_atomic_t gotSIGQUIT = 0;\n"
" /* Essayer d'annuler toutes les requêtes d'E/S\n"
" en cours lors de la réception d'un SIGQUIT */\n"
"\\&\n"
"static void /* Gestionnaire pour SIGQUIT */\n"
"quitHandler(int sig)\n"
"{\n"
" gotSIGQUIT = 1;\n"
"}\n"
"\\&\n"
"#define IO_SIGNAL SIGUSR1 /* Signal pour notifier la fin d'E/S */\n"
"\\&\n"
"static void /* Gestionnaire pour le signal de fin d'E/S */\n"
"aioSigHandler(int sig, siginfo_t *si, void *ucontext)\n"
"{\n"
" if (si-Esi_code == SI_ASYNCIO) {\n"
" write(STDOUT_FILENO, \"Gestionnaire pour le signal de fin d'E/S\\en\", 31);\n"
"\\&\n"
" /* La structure ioRequest correspondante serait disponible en\n"
"\t struct ioRequest *ioReq = si-Esi_value.sival_ptr;\n"
"\t et le descripteur de fichier serait alors disponible via\n"
" ioReq-Eaiocbp-Eaio_fildes */\n"
" }\n"
"}\n"
"\\&\n"
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" struct sigaction sa;\n"
" int s;\n"
" int numReqs; /* Nombre total de requêtes d'E/S dans la file */\n"
" int openReqs; /* Nombre de requêtes d'E/S encore en cours */\n"
"\\&\n"
" if (argc E 2) {\n"
" fprintf(stderr, \"Utilisation : %s EcheminE EcheminE...\\en\",\n"
" argv[0]);\n"
" exit(EXIT_FAILURE);\n"
" }\n"
"\\&\n"
" numReqs = argc - 1;\n"
"\\&\n"
" /* Allocation des tableaux. */\n"
"\\&\n"
" struct ioRequest *ioList = calloc(numReqs, sizeof(*ioList));\n"
" if (ioList == NULL)\n"
" errExit(\"calloc\");\n"
"\\&\n"
" struct aiocb *aiocbList = calloc(numReqs, sizeof(*aiocbList));\n"
" if (aiocbList == NULL)\n"
" errExit(\"calloc\");\n"
"\\&\n"
" /* Mise en place des gestionnaires pour SIGQUIT et le signal de fin d'E/S. */\n"
"\\&\n"
" sa.sa_flags = SA_RESTART;\n"
" sigemptyset(&sa.sa_mask);\n"
"\\&\n"
" sa.sa_handler = quitHandler;\n"
" if (sigaction(SIGQUIT, &sa, NULL) == -1)\n"
" errExit(\"sigaction\");\n"
"\\&\n"
" sa.sa_flags = SA_RESTART | SA_SIGINFO;\n"
" sa.sa_sigaction = aioSigHandler;\n"
" if (sigaction(IO_SIGNAL, &sa, NULL) == -1)\n"
" errExit(\"sigaction\");\n"
"\\&\n"
" /* Ouverture de chaque fichier indiqué sur la ligne de commande et mise en file\n"
" d'attente d'une requête de lecture sur le descripteur de fichier correspondant. */\n"
"\\&\n"
" for (size_t j = 0; j E numReqs; j++) {\n"
" ioList[j].reqNum = j;\n"
" ioList[j].status = EINPROGRESS;\n"
" ioList[j].aiocbp = &aiocbList[j];\n"
"\\&\n"
" ioList[j].aiocbp-Eaio_fildes = open(argv[j + 1], O_RDONLY);\n"
" if (ioList[j].aiocbp-Eaio_fildes == -1)\n"
" errExit(\"open\");\n"
" printf(\"%s ouvert sur le descripteur %d\\en\", argv[j + 1],\n"
" ioList[j].aiocbp-Eaio_fildes);\n"
"\\&\n"
" ioList[j].aiocbp-Eaio_buf = malloc(BUF_SIZE);\n"
" if (ioList[j].aiocbp-Eaio_buf == NULL)\n"
" errExit(\"malloc\");\n"
"\\&\n"
" ioList[j].aiocbp-Eaio_nbytes = BUF_SIZE;\n"
" ioList[j].aiocbp-Eaio_reqprio = 0;\n"
" ioList[j].aiocbp-Eaio_offset = 0;\n"
" ioList[j].aiocbp-Eaio_sigevent.sigev_notify = SIGEV_SIGNAL;\n"
" ioList[j].aiocbp-Eaio_sigevent.sigev_signo = IO_SIGNAL;\n"
" ioList[j].aiocbp-Eaio_sigevent.sigev_value.sival_ptr =\n"
" &ioList[j];\n"
"\\&\n"
" s = aio_read(ioList[j].aiocbp);\n"
" if (s == -1)\n"
" errExit(\"aio_read\");\n"
" }\n"
"\\&\n"
" openReqs = numReqs;\n"
"\\&\n"
" /* Boucle, surveillance de l'état des requêtes d'E/S. */\n"
"\\&\n"
" while (openReqs E 0) {\n"
" sleep(3); /* Délai entre chaque étape de surveillance */\n"
"\\&\n"
" if (gotSIGQUIT) {\n"
"\\&\n"
" /* Lors de la réception de SIGQUIT, essayer d'annuler\n"
" toutes les requêtes d'E/S en cours et afficher\n"
" l'état renvoyé par les requêtes d'annulation. */\n"
"\\&\n"
" printf(\"réception de SIGQUIT ; annulation des requêtes d'E/S : \\en\");\n"
"\\&\n"
" for (size_t j = 0; j E numReqs; j++) {\n"
" if (ioList[j].status == EINPROGRESS) {\n"
" printf(\" Request %zu on descriptor %d:\", j,\n"
" ioList[j].aiocbp-Eaio_fildes);\n"
" s = aio_cancel(ioList[j].aiocbp-Eaio_fildes,\n"
" ioList[j].aiocbp);\n"
" if (s == AIO_CANCELED)\n"
" printf(\"I/O canceled\\en\");\n"
" else if (s == AIO_NOTCANCELED)\n"
" printf(\"I/O not canceled\\en\");\n"
" else if (s == AIO_ALLDONE)\n"
" printf(\"I/O all done\\en\");\n"
" else\n"
" perror(\"aio_cancel\");\n"
" }\n"
" }\n"
"\\&\n"
" gotSIGQUIT = 0;\n"
" }\n"
"\\&\n"
" /* Vérification de l'état de toutes les\n"
" requêtes d'E/S encore en cours. */\n"
"\\&\n"
" printf(\"aio_error():\\en\");\n"
" for (size_t j = 0; j E numReqs; j++) {\n"
" if (ioList[j].status == EINPROGRESS) {\n"
" printf(\" pour la requête %zu (descripteur %d) : \",\n"
" j, ioList[j].aiocbp-Eaio_fildes);\n"
" ioList[j].status = aio_error(ioList[j].aiocbp);\n"
"\\&\n"
" switch (ioList[j].status) {\n"
" case 0:\n"
" printf(\"E/S réussie\\en\");\n"
" break;\n"
" case EINPROGRESS:\n"
" printf(\"En cours\\en\");\n"
" break;\n"
" case ECANCELED:\n"
" printf(\"Annulée\\en\");\n"
" break;\n"
" default:\n"
" perror(\"aio_error\");\n"
" break;\n"
" }\n"
"\\&\n"
" if (ioList[j].status != EINPROGRESS)\n"
" openReqs--;\n"
" }\n"
" }\n"
" }\n"
"\\&\n"
" printf(\"Toutes les requêtes d'E/S sont terminées\\en\");\n"
"\\&\n"
" /* Vérification de l'état de retour de toutes les requêtes d'E/S. */\n"
"\\&\n"
" printf(\"aio_return():\\en\");\n"
" for (size_t j = 0; j E numReqs; j++) {\n"
" ssize_t s;\n"
"\\&\n"
" s = aio_return(ioList[j].aiocbp);\n"
" printf(\" pour la requête %zu (descripteur %d) : %zd\\en\",\n"
" j, ioList[j].aiocbp-Eaio_fildes, s);\n"
" }\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "SEE ALSO"
msgstr "VOIR AUSSI"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"B(2), B(2), B(2), B(2), "
"B(2), B(3), B(3), B(3), "
"B(3), B(3), B(3), B(3)"
msgstr ""
"B(2), B(2), B(2), B(2), "
"B(2), B(3), B(3), B(3), "
"B(3), B(3), B(3), B(3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"\"Asynchronous I/O Support in Linux 2.5\", Bhattacharya, Pratt, Pulavarty, "
"and Morgan, Proceedings of the Linux Symposium, 2003, E<.UR https://www."
"kernel.org/doc/ols/2003/ols2003-pages-351-366.pdf> E<.UE>"
msgstr ""
"\"Asynchronous I/O Support in Linux 2.5\", Bhattacharya, Pratt, Pulavarty, "
"and Morgan, Proceedings of the Linux Symposium, 2003, E<.UR https://www."
"kernel.org/doc/ols/2003/ols2003-pages-351-366.pdf> E<.UE>"
#. type: TH
#: debian-bookworm
#, no-wrap
msgid "2023-02-05"
msgstr "5 février 2023"
#. type: TH
#: debian-bookworm
#, no-wrap
msgid "Linux man-pages 6.03"
msgstr "Pages du manuel de Linux 6.03"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid "#include Eaiocb.hE\n"
msgstr "#include Eaiocb.hE\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"struct aiocb {\n"
" /* The order of these fields is implementation-dependent */\n"
msgstr ""
"struct aiocb {\n"
" /* L'ordre de ces champs dépend de l'implémentation */\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" int aio_fildes; /* File descriptor */\n"
" off_t aio_offset; /* File offset */\n"
" volatile void *aio_buf; /* Location of buffer */\n"
" size_t aio_nbytes; /* Length of transfer */\n"
" int aio_reqprio; /* Request priority */\n"
" struct sigevent aio_sigevent; /* Notification method */\n"
" int aio_lio_opcode; /* Operation to be performed;\n"
" lio_listio() only */\n"
msgstr ""
" int aio_fildes; /* Descripteur de fichier */\n"
" off_t aio_offset; /* Position dans le fichier */\n"
" volatile void *aio_buf; /* Emplacement du tampon */\n"
" size_t aio_nbytes; /* Longueur de transfert */\n"
" int aio_reqprio; /* Priorité de requête */\n"
" struct sigevent aio_sigevent; /* Méthode de notification */\n"
" int aio_lio_opcode; /* Opération à réaliser ;\n"
" lio_listio() seulement */\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" /* Various implementation-internal fields not shown */\n"
"};\n"
msgstr ""
" /* Divers champs internes à l'implémentation ne sont pas montrés */\n"
"};\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid "/* Operation codes for \\[aq]aio_lio_opcode\\[aq]: */\n"
msgstr "/* Codes opératoires pour « aio_lio_opcode » : */\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid "enum { LIO_READ, LIO_WRITE, LIO_NOP };\n"
msgstr "enum { LIO_READ, LIO_WRITE, LIO_NOP };\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
msgid ""
"This field is a structure that specifies how the caller is to be notified "
"when the asynchronous I/O operation completes. Possible values for "
"I are B, B, and "
"B. See B(7) for further details."
msgstr ""
"Structure indiquant comment l'appelant sera notifié de la fin d'une "
"opération d'E/S asynchrone. Les valeurs de I "
"peuvent être B, B et B. Consultez "
"B(7) pour plus de précisions."
#. type: SH
#: debian-bookworm
#, no-wrap
msgid "VERSIONS"
msgstr "VERSIONS"
#. type: Plain text
#: debian-bookworm
msgid "The POSIX AIO interfaces are provided by glibc since glibc 2.1."
msgstr ""
"Les interfaces AIO POSIX sont fournies par la glibc depuis la glibc 2.1."
#. type: Plain text
#: debian-bookworm
msgid "POSIX.1-2001, POSIX.1-2008."
msgstr "POSIX.1-2001, POSIX.1-2008."
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"#include Efcntl.hE\n"
"#include Estdlib.hE\n"
"#include Eunistd.hE\n"
"#include Estdio.hE\n"
"#include Eerrno.hE\n"
"#include Eaio.hE\n"
"#include E