Provided by: manpages-fr-dev_2.64.1-1_all bug

NOM

       clock_getres,  clock_gettime, clock_settime - Fonctions d’horloge et de
       temps

SYNOPSIS

       #include <time.h>

       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);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       clock_getres(), clock_gettime(), clock_settime():
       _POSIX_C_SOURCE >= 199309L

DESCRIPTION

       La   fonction  clock_getres()  cherche  la  résolution  (précision)  de
       l’horloge clk_id spécifiée et si res est non  NULL,  elle  l’enregistre
       dans  la structure timespec pointée par res. La résolution des horloges
       dépend de l’implémentation et  ne  peut  pas  être  configurée  par  un
       processus  particulier.  Si la valeur du temps pointé par l’argument tp
       de clock_settime() n’est pas un  multiple  de  res,  cette  valeur  est
       tronquée à un multiple de res.

       Les   fonctions   clock_gettime()   et  clock_settime()  récupèrent  et
       configurent le temps de l’horloge clk_id spécifiée.

       Les arguments res et tp sont  des  structures  timespec  définies  dans
       <time.h> :

       struct timespec {
           time_t   tv_sec;        /* seconds */
           long     tv_nsec;       /* nanoseconds */
       };

       L’argument  clk_id  est  l’identifiant  d’une  horloge particulière sur
       laquelle agir. Une  horloge  peut  être  globale  au  système,  et  par
       conséquent  visible de tous les processus, ou propre à un processus, si
       elle mesure le temps uniquement pour celui-ci.

       Toutes les implémentations supportent  l’horloge  temps  réel  globale,
       laquelle  est  identifiée  par  CLOCK_REALTIME. Son temps représente le
       nombre de secondes et nanosecondes écoulées depuis le  début  de  l’Ère
       Unix  (01-01-1970  GMT  00:00).  Lorsque  son  temps  est  modifié, les
       horloges mesurant un intervalle de temps ne sont  pas  affectées  alors
       que celles indiquant une date (heure) absolue le sont.

       Plusieurs  horloges  peuvent  être  implémentées.  L’interprétation des
       valeurs de temps correspondantes et l’effet sur les  temporisateurs  ne
       sont pas spécifiés.

       Les  versions  suffisamment  récentes  de la GNU libc et du noyau Linux
       gèrent les horloges suivantes :

       CLOCK_REALTIME
              Horloge temps réel globale au système. Configurer cette  horloge
              nécessite d’avoir les privilèges appropriés.

       CLOCK_MONOTONIC
              Horloge non configurable qui représente un temps monotone depuis
              une date de début arbitraire.

       CLOCK_PROCESS_CPUTIME_ID
              Horloge CPU haute résolution pour processus.

       CLOCK_THREAD_CPUTIME_ID
              Horloge CPU spécifique aux threads.

VALEUR RENVOYÉE

       clock_gettime(), clock_settime() et clock_getres() renvoient 0 si elles
       réussissent  ou -1 si elles échouent, 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 spécifiée n’est pas supportée sur ce système.

       EPERM  clock_settime() n’a pas l’autorisation de  configurer  l’horloge
              spécifiée.

CONFORMITÉ À

       SUSv2, POSIX.1-2001.

DISPONIBILITÉ

       Sur  les  systèmes  conformes à la spécification POSIX sur lesquels ces
       fonctions sont disponibles, la constante symbolique  _POSIX_TIMERS  est
       définie  dans  <unistd.h>  comme  étant  une valeur supérieure à 0. Les
       constantes    symboliques    _POSIX_MONOTONIC_CLOCK,    _POSIX_CPUTIME,
       _POSIX_THREAD_CPUTIME        indiquent       que       CLOCK_MONOTONIC,
       CLOCK_PROCESS_CPUTIME_ID,  CLOCK_THREAD_CPUTIME_ID  sont   disponibles.
       (Voyez aussi sysconf(3).)

NOTES

       La plupart des systèmes nécessitent d’être liés à la bibliothèque librt
       afin de pouvoir utiliser ces fonctions.

   Note pour les systèmes multiprocesseurs (SMP)
       Les horloges CLOCK_PROCESS_CPUTIME_ID et  CLOCK_THREAD_CPUTIME_ID  sont
       réalisées  sur bien des plateformes en utilisant les temporisateurs des
       CPU (TSC sur i386, AR.ITC sur  Itanium).  Les  registres  peuvent  être
       différents  entre  CPU  avec pour conséquence des résultats bidons pour
       ces horloges si un processus a été transféré sur une autre CPU.

       Si  les  CPU  d’un  système  multiprocesseur  ont  différentes  sources
       d’horloges, il n’y a aucun moyen de maintenir une corrélation entre les
       registres temporisateur puisque chaque CPU  tournera  à  une  fréquence
       légèrement différente. Si c’est le cas, clock_getcpuclockid(0) renverra
       ENOENT pour signifier cette condition. Les deux  horloges  seront  donc
       utiles  si  on  peut  être certain que le processus reste sur un CPU en
       particulier.

       Les  processeurs  d’un  système  multiprocesseur   ne   démarrent   pas
       exactement  au  même  moment,  ainsi  les registres temporisateurs sont
       lancés avec un décalage. Certaines architectures incluent un code  pour
       tenter  de  limiter  ce  décalage  au  démarrage. Toutefois, ce code ne
       garantit pas l’accord précis des décalages. La glibc ne  contient  rien
       pour gérer ces décalages (à la différence du noyau Linux). Typiquement,
       ces  décalages  sont  petits  et  ainsi,  leurs  effets  peuvent   être
       négligeable dans la plupart des cas.

VOIR AUSSI

       date(1),   adjtimex(2),   gettimeofday(2),   settimeofday(2),  time(2),
       ctime(3), ftime(3), sysconf(3)

TRADUCTION

       Cette page de manuel a été traduite et mise à  jour  par  Alain  Portal
       <aportal  AT  univ-montp2  DOT  fr>  entre  2004  et  2006,  et  mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Florentin Duneau <fduneau@gmail.com> 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> ».

                                  2007-07-26                   CLOCK_GETRES(3)