Loading

NOM

       gettimeofday, settimeofday - Lire/écrire l’heure actuelle.

SYNOPSIS

       #include <sys/time.h>

       int gettimeofday(struct timeval *tv, struct timezone *tz);
       int settimeofday(const struct timeval *tv, const struct timezone *tz);

   Exigences  de  macros  de  test  de  fonctionnalités  pour  la  glibc (voir
   feature_test_macros(7)) :

       settimeofday() : _BSD_SOURCE

       Les fonctions  gettimeofday()  et  settimeofday()  servent  à  lire  ou
       programmer  l’heure  ainsi que le fuseau horaire (timezone). L’argument
       tv est une structure timeval décrite dans <sys/time.h> :

           struct timeval {
               time_t      tv_sec;     /* secondes */
               suseconds_t tv_usec;    /* microsecondes */
           };

       et donne le nombre de secondes et microsecondes écoulées depuis le  1er
       janvier  1970  (voir time(2)). L’argument tz est une structure timezone
       composée ainsi :

           struct timezone {
               int tz_minuteswest; /* minutes à l’ouest de Greenwich  */
               int tz_dsttime;     /* type de changement horaire      */
           };

       Si tv ou tz est nulle, la structure correspondante n’est ni remplie  ni
       renvoyée.

       L’utilisation  de  la  structure  timezone est obsolète ; l’argument tz
       doit en général être NULL. Le champ tz_dsttime n’a jamais  été  utilisé
       sous Linux, il n’a jamais été géré, et ne le sera jamais par la libc ou
       glibc. Toute occurrence de ce champ dans les  sources  du  noyau  (sauf
       pour  les  déclarations)  est un bogue. Ainsi le paragraphe suivant n’a
       qu’un intérêt historique.

       Le champ tz_dsttime contient une constante symbolique (dont les valeurs
       sont  fournies  ci‐dessous)  qui  indique  quelle  partie du changement
       horaire annuel est en cours. (Remarque :  cette  valeur  est  constante
       tout  au  long  de  l’année,  elle  n’indique  pas réellement la valeur
       horaire en cours, elle  sélectionne  un  algorithme).  Les  changements
       horaires (Daylight Saving Time - DST) sont définis comme suit :

           DST_NONE     /* Aucun */
           DST_USA      /* USA */
           DST_AUST     /* Australie */
           DST_WET      /* Europe occidentale */
           DST_MET      /* Europe centrale */
           DST_EET      /* Europe Orientale */
           DST_CAN      /* Canada */
           DST_GB       /* Grande‐Bretagne et Irlande */
           DST_RUM      /* Roumanie */
           DST_TUR      /* Turquie */
           DST_AUSTALT  /* Australie avec décalage en 1986 */

       Il  est  évident  que  le  décalage  horaire  en cours ne peut pas être
       uniquement fourni par un algorithme par pays.  Ce  décalage  dépend  de
       décisions  politiques  imprévisibles.  Ainsi, cette méthode des fuseaux
       horaires a été abandonnée. Sous Linux, durant un appel à settimeofday()
       le champ tz_dsttime doit être nul.

       Sous  Linux,  il  existe une sémantique particulière associée à l’appel
       système settimeofday() si, durant  la  première  invocation  (après  le
       boot),  il  a  un argument tz non NULL, un argument tv NULL et un champ
       tz_minuteswest différent de zéro. Dans ce cas, on suppose que l’horloge
       CMOS  de la machine est configurée sur le temps local, et que l’on doit
       l’augmenter de cette valeur pour obtenir le temps UTC. Bien entendu, il
       faut éviter autant que possible d’utiliser cette particularité.

       Les  macros  opérant  sur  les  structures  timeval  sont décrites dans
       timeradd(3).

VALEUR RENVOYÉE

       gettimeofday et settimeofday renvoient 0 s’ils réussissent, ou -1 s’ils
       échouent, auquel cas errno contient le code d’erreur.

ERREURS

       EFAULT tv ou tz pointent en dehors de l’espace d’adressage autorisé.

       EINVAL Le fuseau horaire (ou autre chose) est invalide.

       EPERM  Le  processus  appelant  n’a  pas  les privilèges suffisant pour
              appeler settimeofday() ; sous Linux,  la  capacité  CAP_SYS_TIME
              est nécessaire.

CONFORMITÉ

       SVr4,    BSD 4.3.   POSIX.1-2001   décrit   gettimeofday()   mais   pas
       settimeofday().  POSIX.1-2008   marque   gettimeofday()   comme   étant
       obsolète, en recommandant d’utiliser clock_gettime(2) à la place.

NOTES

       Traditionnellement,  les champs de la structure timeval étaient de type
       long.

VOIR AUSSI

       date(1), adjtimex(2),  time(2),  ctime(3),  ftime(3),  capabilities(7),
       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  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 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 Julien Cristau <jcristau@debian.org> 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> ».