NOM
timer_settime, timer_gettime - Armer, désarmer et récupérer l’état
d’une minuterie POSIX d’un processus
SYNOPSIS
#include <time.h>
int timer_settime(timer_t timerid, int flags,
const struct itimerspec *new_value,
struct itimerspec * old_value);
int timer_gettime(timer_t timerid, struct itimerspec *curr_value);
Effectuez l’édition des liens avec l’option -lrt.
Exigences de macros de test de fonctionnalités pour la glibc (voir
feature_test_macros(7)) :
timer_settime(), timer_gettime() : _POSIX_C_SOURCE >= 199309
timer_settime() arme et désarme la minuterie indiquée par timerid. Le
paramètre new_value est une structure itimerspec qui indique la
nouvelle valeur initiale et le nouvel intervalle pour la minuterie. La
structure itimerspec est définie comme ceci :
struct timespec {
time_t tv_sec; /* Secondes */
long tv_nsec; /* Nanosecondes */
};
struct itimerspec {
struct timespec it_interval; /* Intervalle pour les
minuteries périodiques */
struct timespec it_value; /* Expiration initiale */
};
Chacune des sous-structures de la structure itimerspec est une
structure timespec 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().
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 (voir 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 elle renvoie 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.
VERSIONS
Ces appels systèmes sont disponibles depuis Linux 2.6.
CONFORMITÉ
POSIX.1-2001
EXEMPLE
Consultez timer_create(2).
VOIR AUSSI
timer_create(2), timer_settime(2), timer_getoverrun(2), time(7)
COLOPHON
Cette page fait partie de la publication 3.23 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
Cette page de manuel a été traduite et est maintenue par Nicolas
François <nicolas.francois@centraliens.net> et l’équipe francophone de
traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».