Rev | Author | # | Line |
---|---|---|---|
1 | perry | 1 | !!NAME |
2 | PerryLorier | 2 | gettimeofday - get time |
1 | perry | 3 | !!SYNOPSIS |
2 | PerryLorier | 4 | __#include <sys/time.h>__ |
5 | __#include <time.h>__ | ||
6 | __int gettimeofday(struct timeval *__''tv''__, struct timezone *__''tz''__);__ | ||
1 | perry | 7 | !!DESCRIPTION |
2 | PerryLorier | 8 | __gettimeofday__ can get the time as well as a timezone. ''tv'' is a __timeval__ struct, as specified in /usr/include/sys/time.h: |
1 | perry | 9 | |
2 | PerryLorier | 10 | struct timeval { |
11 | long tv_sec; /* seconds */ | ||
12 | long tv_usec; /* microseconds */ | ||
13 | }; | ||
1 | perry | 14 | |
2 | PerryLorier | 15 | 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. |
1 | perry | 16 | |
17 | The ''tz'' argument is a __timezone__ : | ||
18 | |||
2 | PerryLorier | 19 | struct timezone { |
20 | int tz_minuteswest; /* minutes W of Greenwich */ | ||
21 | int tz_dsttime; /* type of dst correction */ | ||
22 | }; | ||
1 | perry | 23 | 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. |
24 | |||
2 | PerryLorier | 25 | 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 : |
1 | perry | 26 | |
2 | PerryLorier | 27 | __DST_NONE__ /* not on dst */ |
28 | __DST_USA__ /* USA style dst */ | ||
29 | __DST_AUST__ /* Australian style dst */ | ||
30 | __DST_WET__ /* Western European dst */ | ||
31 | __DST_MET__ /* Middle European dst */ | ||
32 | __DST_EET__ /* Eastern European dst */ | ||
33 | __DST_CAN__ /* Canada */ | ||
34 | __DST_GB__ /* Great Britain and Eire */ | ||
35 | __DST_RUM__ /* Rumania */ | ||
36 | __DST_TUR__ /* Turkey */ | ||
37 | __DST_AUSTALT__ /* Australian style with shift in 1986 */ | ||
1 | perry | 38 | |
2 | PerryLorier | 39 | 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. |
1 | perry | 40 | |
2 | PerryLorier | 41 | The following macros are defined to operate on a struct timeval : |
1 | perry | 42 | |
2 | PerryLorier | 43 | #define timerisset(tvp)\ |
44 | ((tvp)->tv_sec || (tvp)->tv_usec) | ||
45 | #define timercmp(tvp, uvp, cmp)\ | ||
46 | ((tvp)->tv_sec cmp (uvp)->tv_sec ||\ | ||
47 | (tvp)->tv_sec == (uvp)->tv_sec &&\ | ||
48 | (tvp)->tv_usec cmp (uvp)->tv_usec) | ||
49 | #define timerclear(tvp)\ | ||
50 | ((tvp)->tv_sec = (tvp)->tv_usec = 0) | ||
1 | perry | 51 | |
52 | |||
53 | If either ''tv'' or ''tz'' is null, the corresponding structure is not set or returned. | ||
54 | |||
55 | !!RETURN VALUE | ||
2 | PerryLorier | 56 | gettimeofday(2) return 0 for success, or -1 for failure (in which case ''errno'' is set appropriately). |
1 | perry | 57 | |
58 | !!ERRORS | ||
2 | PerryLorier | 59 | ;[EINVAL]: Timezone (or something else) is invalid. |
60 | ;[EFAULT]: One of ''tv'' or ''tz'' pointed outside your accessible address space. | ||
1 | perry | 61 | |
62 | !!NOTE | ||
2 | PerryLorier | 63 | 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). |
1 | perry | 64 | |
65 | !!CONFORMING TO | ||
2 | PerryLorier | 66 | SVr4, BSD 4.3 |
1 | perry | 67 | |
68 | !!SEE ALSO | ||
2 | PerryLorier | 69 | date(1), adjtimex(2), time(2), ctime(3), ftime(3) |
lib/blame.php:177: Warning: Invalid argument supplied for foreach() (...repeated 8 times)