timer_settime(2)

NOM
timer_settime, timer_gettime - Armer, désarmer et récupérer l'état d'une minuterie POSIX d'un processus

BIBLIOTHÈQUE
Bibliothèque de temps réel (librt, -lrt)

SYNOPSIS
#include <time.h>

int timer_gettime(timer_t timerid, struct itimerspec *curr_value);
int timer_settime(timer_t timerid, int flags,
                  const struct itimerspec *restrict new_value,
                  struct itimerspec *_Nullable restrict old_value);

    Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

timer_settime(), timer_gettime():
    _POSIX_C_SOURCE >= 199309L

DESCRIPTION
timer_settime() arme et désarme la minuterie indiquée par timerid. Le paramètre new_value est un pointeur vers une structure itimerspec qui indique la nouvelle valeur initiale et le nouvel intervalle pour la minuterie. La structure itimerspec est définie dans itimerspec(3type).

Chacune des sous-structures de la structure itimerspec est une structure timespec(3) qui permet d'indiquer une valeur en secondes et en nanosecondes. Ces valeurs sont mesurée en fonction de l'horloge qui a été indiquée lorsque la minuterie a été créée avec timer_create(2).

Si new_value->it_value indique une valeur non nulle (c'est-à-dire qu'un de ses champs n'est pas nul), alors timer_settime() arme (démarre) la minuterie, en la configurant pour qu'elle expire au moment donnée (si la minuterie était déjà armée, sa configuration précédente est remplacée). Si new_value->it_value a une valeur nulle (c'est-à-dire si ses deux champs sont nuls), alors la minuterie est désarmée.

Le champ new_value->it_interval indique la période de la minuterie, en secondes et nanosecondes. Si ce champ n'est pas nul alors à chaque fois qu'une minuterie armée expire, la minuterie est rechargée avec la valeur indiquée dans new_value->it_interval. Si new_value->it_interval est nul, alors la minuterie n'expire qu'une fois, une fois que le temps défini par it_value est écoulé.

Par défaut, le temps d'expiration initial indiqué par new_value->it_value est interprété par rapport à l'instant actuel sur l'horloge de la minuterie au moment de l'appel. Ceci peut être modifié en indiquant TIMER_ABSTIME dans flags, new_value->it_value étant alors interprété comme une valeur absolue mesurée sur l'horloge de la minuterie ; c'est-à-dire que la minuterie expirera quand la valeur de l'horloge atteint la valeur indiquée par new_value->it_value. Si le temps absolu indiqué est déjà passé, alors la minuterie expire immédiatement et le compteur de dépassement (consultez timer_getoverrun(2)) est positionné en conséquence.

Si la valeur de l'horloge CLOCK_REALTIME est ajustée et qu'une minuterie absolue basée sur cette horloge est armée, alors l'expiration de cette minuterie sera ajustée en conséquence. Les ajustements de l'horloge CLOCK_REALTIME n'ont aucun effet sur les minuteries relatives basées sur cette horloge.

Si old_value n'est pas NULL, alors il pointe vers un tampon qui est utilisé pour renvoyer l'intervalle précédent de la minuterie (dans old_value->it_interval) et la durée qu'il restait avant l'expiration suivante de la minuterie (dans old_value->it_value).

timer_gettime() renvoie dans le tampon pointé par curr_value le temps restant avant l'expiration suivante et l'intervalle de la minuterie indiquée par timerid. Le temps restant avant l'expiration suivante est renvoyé dans curr_value->it_value ; il s'agit toujours d'une valeur relative, que le drapeau TIMER_ABSTIME soit utilisé ou non lorsque la minuterie est armée. Si la valeur renvoyée dans curr_value->it_value est nulle, alors la minuterie était désarmée au moment de l'appel. L'intervalle de la minuterie est renvoyée dans curr_value->it_interval. Si la valeur renvoyée dans curr_value->it_interval est nulle, alors il s'agit d'une minuterie à un coup.

VALEUR RENVOYÉE
En cas de réussite, timer_settime() et timer_gettime() renvoient zéro. En cas d'erreur, -1 est renvoyé et errno indique le code d'erreur.

ERREURS
Ces fonctions peuvent échouer avec les erreurs suivantes :

EFAULT
    new_value, old_value ou curr_value n'est pas un pointeur valable.

EINVAL
    timerid n'est pas valable

timer_settime() peut échouer avec les erreurs suivantes :

EINVAL
    new_value.it_value est négatif ; ou new_value.it_value.tv_nsec est négatif ou supérieur à 999,999,999.

STANDARDS
POSIX.1-2008.

HISTORIQUE
Linux 2.6. POSIX.1-2001.

EXEMPLES
Consultez timer_create(2).

VOIR AUSSI
timer_create(2), timer_getoverrun(2), timespec(3), 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 (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.