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 (consultez
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 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(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.
VERSIONS¶
Ces appels systèmes sont disponibles depuis Linux 2.6.
POSIX.1-2001.
EXEMPLE¶
Consultez
timer_create(2).
VOIR AUSSI¶
timer_create(2),
timer_getoverrun(2),
time(7)
COLOPHON¶
Cette page fait partie de la publication 3.44 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/>.
Nicolas François et l'équipe francophone de traduction de
Debian (2006-2009).
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> ».