AIO_SUSPEND(3)

NOM
aio_suspend - Attendre une opération d'E/S asynchrone ou un délai

SYNOPSIS

#include <aio.h>

int aio_suspend(const struct aiocb * const aiocb_list[],
                int nitems, const struct timespec *timeout);

Effectuez l'édition des liens avec l'option -lrt.

DESCRIPTION
La fonction aio_suspend() suspend le processus léger appelant tant que l'un des événements suivants ne se produisent :

*   Une ou plusieurs requêtes asynchrones d'E/S de la liste aiocb_list se sont terminées.

*   Un signal est reçu.

*   timeout est non NULL et l'intervalle de temps spécifié a expiré. Consultez nanospleep(2) pour plus de détails sur la structure timespec.

Le paramètre nitems spécifie le nombre d'éléments dans aiocb_list. Chaque élément de la liste pointée par aiocb_list doit être soit NULL (auquel cas il est ignoré), soit un pointeur vers un bloc de contrôle sur lequel a été initiée une E/S en utilisant aio_read(3), aio_write(3), ou lio_listio(3). Consultez aio(7) pour une description de la structure aiocb.

Si CLOCK_MONOTONIC est géré, cette horloge est utilisée pour mesurer l'intervalle de dépassement du délai (consultez clock_gettime(3)).

VALEUR RENVOYÉE
Si cette fonction se termine après l'achèvement de l'une des requêtes d'E/S indiquées dans aiocb_list, elle renvoie 0. Autrement, elle renvoie -1 et définit errno en conséquence.

ERREURS

EAGAIN
    L'appel s'est achevé par un dépassement de délai avant qu'au moins une des opérations indiquées ne soit terminée.

EINTR
    L'appel s'est achevé par un signal ; consultez signal(7). (Il est possible que ce soit un signal d'achèvement de l'une des opérations que l'on attendait).

ENOSYS
    aio_suspend() n'est pas implémenté.

VERSIONS
La fonction aio_suspend() est disponible depuis la glibc 2.1.

CONFORMITÉ
POSIX.1-2001, POSIX.1-2008.

NOTES
Il est possible d'effectuer une scrutation en utilisant un délai timeout non nul qui spécifie un intervalle de temps nul. Si une ou plusieurs opérations d'E/S asynchrones spécifiées dans aiocb_list se sont déjà terminées au moment de l'appel à aio_suspend(), alors l'appel renvoie immédiatement. Pour déterminer quelles opérations d'E/S se sont terminées après un retour avec succès de aio_suspend(), utilisez aio_error(3) pour parcourir les structures aiocb pointées par aiocb_list.

VOIR AUSSI
aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3), aio_return(3), aio_write(3), lio_listio(3), aio(7), time(7)

COLOPHON
Cette page fait partie de la publication 3.70 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Alain Portal <http://manpagesfr.free.fr/> (2004-2006). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».