Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
gettimeofday(2)
Edit
PageHistory
Diff
Info
LikePages
!!NAME gettimeofday - get time !!SYNOPSIS __#include <sys/time.h>__ __#include <time.h>__ __int gettimeofday(struct timeval *__''tv''__, struct timezone *__''tz''__);__ !!DESCRIPTION __gettimeofday__ can get the time as well as a timezone. ''tv'' is a __timeval__ struct, as specified in /usr/include/sys/time.h: struct timeval { long tv_sec; /* seconds */ long tv_usec; /* microseconds */ }; The ''tv_sec'' member of the struct is the number of seconds since the Epoch (see time(2)), and ''tv_usec'' is the amount of microseconds past the current ''tv_sec'' value. The ''tz'' argument is a __timezone__ : struct timezone { int tz_minuteswest; /* minutes W of Greenwich */ int tz_dsttime; /* type of dst correction */ }; The use of the timezone struct is obsolete; the ''tz_dsttime'' field has never been used under Linux - it has not been and will not be supported by libc or glibc. Each and every occurrence of this field in the kernel source (other than the declaration) is a bug. Thus, the following is purely of historic interest. The field ''tz_dsttime'' contains a symbolic constant (values are given below) that indicates in which part of the year Daylight Saving Time is in force. (Note: its value is constant throughout the year - it does not indicate that DST is in force, it just selects an algorithm.) The daylight saving time algorithms defined are as follows : __DST_NONE__ /* not on dst */ __DST_USA__ /* USA style dst */ __DST_AUST__ /* Australian style dst */ __DST_WET__ /* Western European dst */ __DST_MET__ /* Middle European dst */ __DST_EET__ /* Eastern European dst */ __DST_CAN__ /* Canada */ __DST_GB__ /* Great Britain and Eire */ __DST_RUM__ /* Rumania */ __DST_TUR__ /* Turkey */ __DST_AUSTALT__ /* Australian style with shift in 1986 */ Of course it turned out that the period in which Daylight Saving Time is in force cannot be given by a simple algorithm, one per country; indeed, this period is determined by unpredictable political decisions. So this method of representing time zones has been abandoned. The following macros are defined to operate on a struct timeval : #define timerisset(tvp)\ ((tvp)->tv_sec || (tvp)->tv_usec) #define timercmp(tvp, uvp, cmp)\ ((tvp)->tv_sec cmp (uvp)->tv_sec ||\ (tvp)->tv_sec == (uvp)->tv_sec &&\ (tvp)->tv_usec cmp (uvp)->tv_usec) #define timerclear(tvp)\ ((tvp)->tv_sec = (tvp)->tv_usec = 0) If either ''tv'' or ''tz'' is null, the corresponding structure is not set or returned. !!RETURN VALUE gettimeofday(2) return 0 for success, or -1 for failure (in which case ''errno'' is set appropriately). !!ERRORS ;[EINVAL]: Timezone (or something else) is invalid. ;[EFAULT]: One of ''tv'' or ''tz'' pointed outside your accessible address space. !!NOTE The defines for __timercmp__, __timerisset__, __timerclear__, __timeradd__, __timersub__ are (since glibc2.2.2) only available if ___BSD_SOURCE__ is defined (either explicitly, or implicitly, by not defining _POSIX_SOURCE or compiling with the -ansi flag). !!CONFORMING TO SVr4, BSD 4.3 !!SEE ALSO date(1), adjtimex(2), time(2), ctime(3), ftime(3)
18 pages link to
gettimeofday(2)
:
perlfaq8(1)
perlfunc(1)
Man2g
asctime(3)
ctime(3)
difftime(3)
ftime(3)
gmtime(3)
localtime(3)
mktime(3)
syscalls(2)
time(2)
tzset(3)
alarm(2)
setitimer(2)
getitimer(2)
pthread_cond_init(3)
hwclock(8)
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.