aio_cancel - Annuler une requête d'E/S asynchrone en cours
Bibliothèque de temps réel (
librt,
-lrt)
#include <aio.h>
int aio_cancel(int fd, struct aiocb *aiocbp);
La fonction
aio_cancel() tente d'annuler les requêtes d'E/S
asynchrones en cours du descripteur de fichier
fd. Si
aiocbp est
NULL, toutes ces requêtes sont annulées. Sinon, seule la
requête décrite par le bloc de contrôle pointé par
aiocbp est annulée. Consultez
aio(7) pour une description
de la structure
aiocb.
Une notification asynchrone normale survient pour les requêtes
annulées (consultez
aio(7) et
sigevent(7)). L'état
de retour de la requête (
aio_return(3)) est défini
à -1 et l'état de l'erreur de la requête (
aio_error(3)) est défini à
ECANCELED. Le bloc de
contrôle des requêtes qui n'ont pas été
annulées n'est pas modifié.
Si la requête n'a pas pu être annulée, elle se terminera
comme d'habitude après avoir réalisé l'opération
d'E/S (dans ce cas,
aio_error(3) renverra l'état
EINPROGRESSS).
Si
aiocbp n'est pas NULL et si
fd diffère du descripteur de
fichier pour lequel l'opération asynchrone a été
initiée, les résultats sont imprévisibles.
Les opérations qui peuvent être annulées dépendent
de l'implémentation.
La fonction
aio_cancel() renvoie une des valeurs suivantes :
- AIO_CANCELED
- Toutes les requêtes ont été
annulées avec succès.
- AIO_NOTCANCELED
- Au moins une des requêtes indiquées n'a pas
été annulée parce qu'elle était en cours. Dans
ce cas, l'état de chaque requête peut être
vérifié en utilisant aio_error(3).
- AIO_ALLDONE
- Toutes les requêtes étaient
déjà achevées avant l'appel.
- -1
- Une erreur est survenue. La raison de l'erreur est
définie dans errno.
- EBADF
-
fd n'est pas un descripteur de fichier valable.
- ENOSYS
-
aio_cancel() n'est pas
implémenté.
La fonction
aio_cancel() est disponible depuis la glibc 2.1.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
aio_cancel() |
Sécurité des threads |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
Consultez
aio(7).
aio_error(3),
aio_fsync(3),
aio_read(3),
aio_return(3),
aio_suspend(3),
aio_write(3),
lio_listio(3),
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
Thomas Vincent <
[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]