|
|||||||
|
|
GETTIMEOFDAYSection: Manuel du programmeur Linux (2)Updated: 18 juillet 2003 Index Return to Main Contents NOMgettimeofday, settimeofday - Lire / écrire l'heure actuelle.SYNOPSIS#include <sys/time.h>
int gettimeofday(struct timeval *tv, struct timezone *tz);
DESCRIPTIONLes 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 /usr/include/sys/time.h :
struct timeval {
int tv_sec; /* secondes */
int 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 */
};
L'utilisation de la structure timezone est obsolète, 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 bug. 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 - DST) sont définis comme suit :
DST_NONE /* Aucun */
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 suivantes permettent de manipuler les structures timeval :
#define timerisset(tvp)\ Si tv ou tz est nulle, la structure correspondante n'est ni programmée ni renvoyée. Seul le Super-User peut appeler settimeofday. VALEUR RENVOYÉEgettimeofday et settimeofday renvoient 0 s'ils réussissent, ou -1 s'ils échouent, auquel cas errno contient le code d'erreur.ERREURS
NOTELe prototype de settimeofday et les définitions de timercmp, timerisset, timerclear, timeradd, timersub sont (depuis GlibC 2.2.2) disponibles uniquement si _BSD_SOURCE est défini (explicitement ou implicitement en ne définissant pas _POSIX_SOURCE ou en utilisant l'option de compilation -ansi).CONFORMITÉSVr4, BSD 4.3VOIR AUSSIdate(1), adjtimex(2), time(2), ctime(3), ftime(3)TRADUCTIONChristophe Blaess, 1996-2003.
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright. 1999-2009 Linuxinfor.com. No rights reserved. |