Man page - gettimeofday(2)

Packages contains this manual

Available languages:

en fr nl ja ru ro

Manual

gettimeofday

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
VERSIONS
Différences entre bibliothÚque C et noyau
STANDARDS
HISTORIQUE
Le champ tz_dsttime
NOTES
VOIR AUSSI
TRADUCTION

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 .