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 *restrict timeout);

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

DESCRIPTION
La fonction aio_suspend() suspend le processus léger appelant jusqu'à ce que l'un des événements suivants se produise :

*   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.

If CLOCK_MONOTONIC is supported, this clock is used to measure the timeout interval (see clock_gettime(2)).

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.

ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface | Attribut | Valeur
aio_suspend() | Sécurité des threads | MT-Safe

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

POSIX doesn't specify the parameters to be restrict; that is specific to glibc.

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.

BOGUES
L'implémentation glibc de aio_suspend() n'est pas sûre dans un contexte de signal asynchrone (« async-signal-safe »), en violation des prérequis de POSIX.1.

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 5.13 du projet man-pages 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/.

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org> Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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 à debian-l10n-french@lists.debian.org.