timer_getoverrun
Table des matières
Retour à l'index
NOM
timer_getoverrun - Obtenir le nombre de dépassements d'une minuterie POSIX
d'un processus
BIBLIOTHÈQUE
Bibliothèque de temps réel (librt, -lrt)
SYNOPSIS
#include <time.h>
int timer_getoverrun(timer_t timerid);
Exigences de macros de test de fonctionnalités pour la glibc (consulter
feature_test_macros(7)) :
timer_getoverrun() :
_POSIX_C_SOURCE >= 199309L
DESCRIPTION
timer_getoverrun() renvoie le compteur de dépassements pour la minuterie
indiquée par timerid. Une application peut utiliser le compteur de
dépassements pour calculer avec précision le nombre d'expiration qui se
seraient écoulée dans un intervalle de temps donné. Les dépassements de
minuterie peuvent survenir lors de la réception d'une notification par un
signal (SIGEV_SIGNAL) ou par un thread (SIGEV_THREAD).
Quand les notifications d'expiration sont fournies par un signal, les
dépassements peuvent survenir de cette façon. Qu'un signal temps réel soit
utilisé ou non pour les notifications de la minuterie, le système empile au
plus un signal par minuterie. (Il s'agit du comportement spécifié par
POSIX.1. L'alternative, empiler un signal pour chaque expiration de
minuterie, pourrait facilement dépasser les limites permises pour
l'empilement de signaux sur le système.) Pour des raisons de délais
d'ordonnancement, ou parce que le signal peut avoir été bloqué pendant un
moment, il peut y avoir un délai entre le moment où le signal de
notification est produit et le moment où il est reçu (par le gestionnaire de
signal) ou accepté (par exemple en utilisant sigwaitinfo(2)). Dans cet
intervalle, d'autres expirations de minuterie peuvent survenir. Le compteur
de dépassements de la minuterie correspond au nombre d'expirations
supplémentaires qui se sont produites entre le moment où le signal a été
produit et le moment où il a été reçu ou accepté.
Les dépassements de minuterie peuvent aussi se produire lorsque les
notifications d'expirations sont fournies par un appel à un thread puisqu'il
peut y avoir un délai arbitraire entre l'expiration de la minuterie et
l'exécution du thread de notification et que dans l'intervalle de ce délai,
d'autres expirations de minuterie peuvent se produire.
VALEUR RENVOYÉE
S'il réussit, timer_getoverrun() renvoie le compteur d'expirations de la
minuterie indiquée ; ce compteur peut valoir 0 si aucune expiration n'a eu
lieu. S'il échoue, il renvoie -1 et écrit errno en conséquence.
ERREURS
- EINVAL
-
timerid n'est pas un identifiant de minuterie valable.
VERSIONS
Lorsque les notifications de minuterie sont fournies par des signaux
(SIGEV_SIGNAL), il est possible sous Linux d'obtenir le compteur de
dépassements par le champ si_overrun de la structure siginfo_t
(consultez sigaction(2)). Ce permet à une application d'éviter le surcoût
d'un appel système pour obtenir le compteur de dépassements, mais est une
extension à POSIX.1 non portable.
POSIX.1 ne mentionne les dépassements de minuteries que dans le contexte de
notifications de minuteries par des signaux.
STANDARDS
POSIX.1-2008.
HISTORIQUE
Linux 2.6. POSIX.1-2001.
BOGUES
POSIX.1 spécifie que si le compteur de dépassements de la minuterie est
supérieur ou égal au maximum défini par l'implémentation
(DELAYTIMER_MAX), alors timer_getoverrun() devrait renvoyer
DELAYTIMER_MAX. Cependant, avant Linux 4.19, si le nombre de dépassements
dépasse l'entier le plus grand représentable, le compteur redémarre à partir
des petites valeurs. Depuis Linux 4.19, timer_getoverrun() renvoie
DELAYTIMER_MAX (défini en tant que INT_MAX dans <limits.h>)
dans ce cas (et le nombre de dépassements est remis à 0).
EXEMPLES
Consultez timer_create(2).
VOIR AUSSI
clock_gettime(2), sigaction(2), signalfd(2), sigwaitinfo(2),
timer_create(2), timer_delete(2), timer_settime(2), signal(7),
time(7)
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>,
David Prévot <david@tilapin.org>,
Cédric Boutillier <cedric.boutillier@gmail.com>,
Frédéric Hantrais <fhantrais@gmail.com>
et
Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
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 à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- VERSIONS
-
- STANDARDS
-
- HISTORIQUE
-
- BOGUES
-
- EXEMPLES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:06 GMT, September 19, 2025