Man Clock_gettime en français
CLOCK_GETRES(3) Manuel du programmeur Linux CLOCK_GETRES(3)
NOM
clock_getres, clock_gettime, clock_settime - fonctions d'horloge et de
temps
SYNOPSIS
#include
int clock_getres(clockid_t clk_id, struct timespec *res);
int clock_gettime(clockid_t clk_id, struct timespec *tp);
int clock_settime(clockid_t clk_id, const struct timespec *tp);
DESCRIPTION
La fonction clock_getres() cherche la resolution (precision) de l'hor-
loge clk_id specifiee et si res est non NULL, elle l'enregistre dans la
structure timespec pointee par res. La resolution des horloges depend
de l'implementation et ne peut pas etre configuree par un processus
particulier. Si la valeur du temps pointe par l'argument tp de
clock_settime() n'est pas un multiple de res, cette valeur est tronquee
a un multiple de res.
Les fonctions clock_gettime() et clock_settime() recuperent et config-
urent le temps de l'horloge clk_id specifiee.
Les arguments res et tp sont des structures timespec definies dans
:
struct timespec {
time_t tv_sec; /* secondes */
long tv_nsec; /* nanosecondes */
};
L'argument clk_id est l'identifiant d'une horloge particuliere sur
laquelle agir. Une horloge peut etre globale au systeme, et par conse-
quent visible de tous les processus, ou propre a un processus, si elle
mesure le temps uniquement pour celui-ci.
Toutes les implementations supportent l'horloge temps reel globale,
laquelle est identifiee par CLOCK_REALTIME. Son temps represente le
nombre de secondes et nanosecondes ecoulees depuis le debut de l'Ere
Unix (01-01-1970 GMT 00:00). Lorsque son temps est modifie, les hor-
loges mesurant un intervalle de temps ne sont pas affectees alors que
celles indiquant une date (heure) absolue le sont.
Plusieurs horloges peuvent etre implementees. L'interpretation des
valeurs de temps correspondantes et l'effet sur les temporisateurs ne
sont pas specifies.
Les versions suffisamment recentes de la GNU libc et du noyau Linux
gerent les horloges suivantes :
CLOCK_REALTIME
Horloge temps reel globale au systeme. Configurer cette horloge
necessite d'avoir les privileges appropries.
CLOCK_MONOTONIC
Horloge non configurable qui represente un temps monotone depuis
une date de debut arbitraire.
CLOCK_PROCESS_CPUTIME_ID
Horloge CPU haute resolution pour processus.
CLOCK_THREAD_CPUTIME_ID
Horloge CPU specifique aux threads.
VALEUR RETOURNEE
clock_gettime(), clock_settime() et clock_getres() renvoient 0 si elles
reussissent ou -1 si elles echouent, auquel cas errno contient le code
d'erreur.
ERREURS
EFAULT tp pointe en dehors de l'espace d'adressage accessible.
EINVAL L'horloge clk_id specifiee n'est pas supportee sur ce systeme.
EPERM clock_settime() n'a pas l'autorisation de configurer l'horloge
specifiee.
NOTE
La plupart des systemes necessitent d'etre lies a la bibliotheque librt
afin de pouvoir utiliser ces fonctions.
NOTE pour les systemes multiprocesseurs (SMP)
Les horloges CLOCK_PROCESS_CPUTIME_ID et CLOCK_THREAD_CPUTIME_ID sont
realisees sur bien des plateformes en utilisant les temporisateurs des
CPU (TSC sur i386, AR.ITC sur Itanium). Les registres peuvent etre
differents entre CPU avec pour consequence des resultats bidons pour
ces horloges si un processus a ete transfere sur une autre CPU.
Si les CPU d'un systeme multiprocesseur ont differentes sources d'hor-
loges, il n'y a aucun moyen demaintenit une correlation entre les reg-
istres temporisateur puisque chaque CPU tournera a une frequence leg-
erement differente. Si c'est le cas, clock_getcpuclockid(0) renverra
ENOENT pour signifier cette condition. Les deux horloges seront donc
utiles si on peut etre certain que le processus reste sur une CPU en
particulier.
Les processeurs d'un systeme multiprocesseur ne demarrent pas exacte-
ment au meme. Ainsi, les registres temporisateurs sont lances avec un
decalage. Certaines architectures incluent un code pour tenter de lim-
iter ce decalage au demarrage. Toutefois, ce code ne garantit pas
l'accord precis des decalages. La glibc ne contient rien pour gerer
ces decalages (a la difference du noyau Linux). Typiquement, ces
decalages sont petits et ainsi, leurs effets peuvent etre negligeable
dans la plupart des cas.
DISPONIBILITE
Sur les systemes conformes a la specification POSIX sur lesquels ces
fonctions sont disponibles, la constante symbolique _POSIX_TIMERS est
definie dans comme etant une valeur superieure a 0. Les
constantes symboliques _POSIX_MONOTONIC_CLOCK, _POSIX_CPUTIME,
_POSIX_THREAD_CPUTIME indiquent que CLOCK_MONOTONIC, CLOCK_PRO-
CESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID sont disponibles. (Voir aussi
sysconf(3).)
CONFORMITE
SUSv2, POSIX.1-2001.
VOIR AUSSI
date(1), adjtimex(2), gettimeofday(2), settimeofday(2), time(2),
ctime(3), ftime(3), sysconf(3)
TRADUCTION
Ce document est une traduction realisee par Alain Portal le 9 juin 2005 et revisee le 14 aot 2006.
L'equipe de traduction a fait le maximum pour realiser une adaptation
francaise de qualite. La version anglaise la plus a jour de ce document
est toujours consultable via la commande : LANG=C man 3 clock_getres .
N'hesitez pas a signaler a l'auteur ou au traducteur, selon le cas,
toute erreur dans cette page de manuel.
24 aot 2003 CLOCK_GETRES(3)
|