Provided by: manpages-fr-dev_4.23.1-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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.