Provided by: manpages-fr-dev_3.27fr1.4-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);

       Effectuez l'edition des liens avec l'option -lrt.

   Exigences de macros de test de fonctionnalites  pour  la  glibc  (consultez
   feature_test_macros(7)) :

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

DESCRIPTION

       La   fonction  clock_getres()  cherche  la  resolution  (precision)  de
       l'horloge 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
       configurent le temps de l'horloge clk_id specifiee.

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

           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
       consequent  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  l'epoque  Unix
       (1er janvier  1970  a 00:00:00 UTC). Lorsque son temps est modifie, les
       horloges 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 glibc 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_MONOTONIC_RAW (depuis Linux 2.6.28 ; specifique a Linux)
              Similaire a CLOCK_MONOTONIC, mais fournit un acces direct  a  un
              temps materiel qui n'est pas sujet aux ajustements NTP.

       CLOCK_PROCESS_CPUTIME_ID
              Horloge CPU haute resolution pour processus.

       CLOCK_THREAD_CPUTIME_ID
              Horloge CPU specifique aux threads.

VALEUR RENVOY'EE

       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.

CONFORMIT'E

       SUSv2, POSIX.1-2001.

DISPONIBILIT'E

       Sur les systemes conformes a la specification POSIX  sur  lesquels  ces
       fonctions  sont  disponibles, la constante symbolique _POSIX_TIMERS est
       definie dans <unistd.h> comme etant une  valeur  superieure  a  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.
       (Consultez aussi sysconf(3).)

NOTES

   Note pour les syst`emes multiprocesseur (SMP)
       Les horloges CLOCK_PROCESS_CPUTIME_ID et  CLOCK_THREAD_CPUTIME_ID  sont
       realisees sur bien des plate-formes en utilisant les temporisateurs des
       CPU (TSC sur i386, AR.ITC sur  Itanium).  Les  registres  peuvent  etre
       differents  entre  CPU  avec pour consequence des r'esultats 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'horloges, il n'y a aucun moyen de maintenir une correlation entre les
       registres temporisateur puisque chaque CPU  tournera  a  une  frequence
       legerement 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 un CPU en
       particulier.

       Les  processeurs  d'un  systeme  multiprocesseur   ne   demarrent   pas
       exactement  au  meme  moment,  ainsi  les registres temporisateurs sont
       lances avec un decalage. Certaines architectures incluent un code  pour
       tenter  de  limiter  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.

BOGUES

       Selon  POSIX.1-2001,  un  processus  avec des << privileges adequats >>
       peut    changer    les     horloges     CLOCK_PROCESS_CPUTIME_ID     et
       CLOCK_THREAD_CPUTIME_ID  avec clock_settime(). Sous Linux, ces horloges
       ne peuvent pas etre modifiees (c'est-a-dire qu'aucun processus  n'a  de
       << privileges adequats >>).

VOIR AUSSI

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

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Alain  Portal  <URL:http://manpagesfr.free.fr/> (2004-2006).  Florentin
       Duneau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

                                3 fevrier 2010                 CLOCK_GETRES(2)