Provided by: manpages-fr-dev_4.27.0-1_all bug

NOM

       gettimeofday, settimeofday - Lire/écrire l'heure actuelle

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <sys/time.h>

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

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

       settimeofday() :
           Depuis la glibc 2.19 :
               _DEFAULT_SOURCE
           glibc 2.19 et antérieures :
               _BSD_SOURCE

DESCRIPTION

       Les  fonctions  gettimeofday() et settimeofday() servent à lire ou programmer l'heure ainsi que le fuseau
       horaire (timezone).

       L'argument tv est une structure timeval (comme indiqué 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 l'epoch (consultez time(2)).

       L'argument tz est une structure timezone :

           struct timezone {
               int tz_minuteswest; /* minutes à l'ouest de Greenwich   */
               int tz_dsttime;     /* type de changement d’heure d’été */
           };

       Si tv ou tz est NULL,  la  structure  correspondante  n'est  ni  remplie  ni  renvoyée.  (Cependant,  des
       avertissements à la compilation seront émis si tv est NULL.)

       L'utilisation  de  la  structure  timezone  est  obsolète  ;  le paramètre tz doit normalement être NULL.
       Consultez la section NOTES ci-dessous.

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

VALEUR RENVOYÉE

       gettimeofday  et  settimeofday  renvoient 0 s'ils réussissent, ou -1 s'ils échouent, auquel cas errno est
       positionné pour indiquer l'erreur.

ERREURS

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

       EINVAL (settimeofday()) : timezone n'est pas valable.

       EINVAL (settimeofday()) : tv.tv_sec est négatif ou tv.tv_usec dépasse l'intervalle [0-999999].

       EINVAL (depuis Linux 4.3)
              (settimeofday()) : tentative de positionner l'heure sur une valeur inférieure à  l'heure  actuelle
              de l'horloge CLOCK_MONOTONIC (voir clock_gettime(2)).

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

VERSIONS

   Différences entre bibliothèque C et noyau
       Sur certaines architectures, une implémentation de gettimeofday() est fournie dans vdso(7).

       Le noyau accepte NULL pour à la fois tv et tz. L'argument timezone est ignoré par glibc et musl et  n'est
       pas  passé  depuis  ou vers le noyau. Bionic d'Android passe l'argument timezone depuis ou vers le noyau,
       mais Android ne met pas à jour le fuseau horaire en se basant sur le fuseau horaire dans les  Paramètres,
       ainsi le fuseau horaire du noyau est habituellement UTC.

STANDARDS

       gettimeofday()
              POSIX.1-2008 (obsolète).

       settimeofday()
              Aucun.

HISTORIQUE

       SVr4,   4.3BSD.   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.

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

   Le champ tz_dsttime
       Sur un noyau non Linux, avec la glibc, le champ tz_dsttime de la structure timezone sera  positionné  sur
       une  valeur  non  nulle par gettimeofday() si il a été appliqué ou sera appliqué au fuseau horaire actuel
       une règle de sauvegarde d’heure d’été.  Dans  ce  sens,  elle  reflète  exactement  la  signification  de
       daylight(3)  pour  la zone actuelle. Sur Linux avec la glibc, le positionnement du champ tz_dsttime de la
       structure timezone n'a jamais été utilisé par settimeofday() ou gettimeofday(). Ainsi, ce  qui  suit  n'a
       qu'un intérêt historique.

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

           DST_NONE     /* pas sur DST */
           DST_USA      /* DST à l'américaine */
           DST_AUST     /* DST à l'australienne */
           DST_WET      /* DST d'Europe occidentale */
           DST_MET      /* DST d'Europe centrale */
           DST_EET      /* DST d'Europe de l'Est */
           DST_CAN      /* Canada */
           DST_GB       /* Grande-Bretagne et Irlande */
           DST_RUM      /* Roumanie */
           DST_TUR      /* Turquie */
           DST_AUSTALT  /* Style australien avec changement en 1986 */

       Il  est  évident  que  la  période  de  l’heure d’été en cours ne peut pas être uniquement fournie par un
       algorithme par pays. Ce décalage dépend de décisions politiques imprévisibles. Aussi,  cette  méthode  de
       représentation des fuseaux horaires a été abandonnée.

NOTES

       L'heure  renvoyée  par  gettimeofday()  est  concernée  par  les  sauts  discontinus  de  l'heure système
       (c'est-à-dire si l'administrateur modifie l'heure système lui-même). Si vous devez incrémenter  l'horloge
       de façon monotone, consultez clock_gettime(2).

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

VOIR AUSSI

       date(1),  adjtimex(2),  clock_gettime(2),  time(2),  ctime(3),  ftime(3),  timeradd(3),  capabilities(7),
       time(7), vdso(7), hwclock(8)

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal  <aportal@univ-montp2.fr>,  Jean-Philippe  Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,    Denis    Barbier    <barbier@debian.org>,    David     Prévot
       <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                    gettimeofday(2)