io_setup - Créer un contexte d'entrées-sorties asynchrones
Bibliothèque C standard (
libc,
-lc)
Sinon, la bibliothèque d'E/S asynchrones ((
libaio,
-laio) ; voir les NOTES.
#include <linux/aio_abi.h> /* Définit les types nécessaires */
long io_setup(unsigned int nr_events, aio_context_t *ctx_idp);
Note : il n'existe pas d'enveloppe pour cet appel système
dans la glibc ; voir NOTES.
Remarque : cette page décrit l'interface de l'appel
système Linux brut. La fonction enveloppe fournie par
libaio
utilise un type différent pour le paramètre
ctx_id. Voir
les NOTES.
L'appel système
io_setup() crée un contexte d'E/S
asynchrone capable de traiter simultanément
nr_events.
L'argument
ctx_idp ne doit pas pointer sur un contexte
déjà existant et doit être initialisé à
zéro avant l'appel. Si la création de contexte réussit,
*ctx_idp est rempli avec le descripteur résultant.
io_setup() renvoie zéro s'il réussit. Pour les valeurs de
retour en cas d'échec, consultez la section NOTES.
- EAGAIN
- La nr_events dépasse la limite des
événements disponibles, telle que définie par
/proc/sys/fs/aio-max-nr (voir proc(5))..
- EFAULT
- Un pointeur invalide a été transmis comme
ctx_idp.
- EINVAL
-
ctx_idp n'est pas initialisé ou la valeur
nr_events dépasse les limites internes. nr_events
doit être supérieur à zéro.
- ENOMEM
- Pas assez de mémoire pour le noyau.
- ENOSYS
-
io_setup() n'est pas implémenté sur
cette architecture.
Les appels système d'entrées-sorties asynchrones sont apparus dans
Linux 2.5.
io_setup() est spécifique à Linux et ne doit pas
être utilisé dans des programmes destinés à
être portables.
La glibc ne fournit pas de fonction autour de cet appel système. Vous
pourriez l'invoquer en utilisant
syscall(2). Mais vous voudrez sans
doute utiliser la fonction enveloppe
io_setup() fournie par
libaio.
Remarquez que la fonction enveloppe
libaio utilise un autre type (
io_context_t *) pour l'argument
ctx_idp. Remarquez
également que l'enveloppe
libaio 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
ERREURS). Si l'appel système est invoqué avec
syscall(2), la valeur de retour suit les conventions classiques pour
indiquer l'erreur : -1 avec
errno contenant le code
(positif) de l'erreur.
io_cancel(2),
io_destroy(2),
io_getevents(2),
io_submit(2),
aio(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Jean-Philippe MENGUAL <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 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 à
[email protected]