gettimeofday, settimeofday - get/set date and time
#include <sys/time.h>
int
gettimeofday(struct timeval *tp, struct timezone *tzp);
int
settimeofday(const struct timeval *tp, const struct timezone
*tzp);
Note: timezone is no longer used; this information is kept
outside the
kernel.
The system's notion of the current Greenwich time and the
current time
zone is obtained with the gettimeofday() call, and set with
the
settimeofday() call. The time is expressed in seconds and
microseconds
since midnight (0 hour), January 1, 1970. The resolution of
the system
clock is hardware dependent, and the time may be updated
continuously or
in ``ticks''. If tp or tzp is NULL, the associated time information will
not be returned or set.
The structures pointed to by tp and tzp are defined in
<sys/time.h> as:
struct timeval {
long tv_sec; /* seconds since Jan. 1,
1970 */
long tv_usec; /* and microseconds */
};
struct timezone {
int tz_minuteswest; /* of Greenwich */
int tz_dsttime; /* type of dst correction to
apply */
};
The timezone structure indicates the local time zone (measured in minutes
of time westward from Greenwich), and a flag that, if nonzero, indicates
that Daylight Saving time applies locally during the appropriate part of
the year.
Only the superuser may set the time of day or time zone. If
the system
securelevel is greater than 1 (see init(8)), the time may
only be advanced.
This limitation is imposed to prevent a malicious
superuser from
setting arbitrary time stamps on files. The system time can
still be adjusted
backwards using the adjtime(2) system call even when
the system is
secure.
A 0 return value indicates that the call succeeded. A -1
return value
indicates an error occurred, and in this case an error code
is stored into
the global variable errno.
The following error codes may be set in errno:
[EFAULT] An argument address referenced invalid memory.
[EPERM] A user other than the superuser attempted to set
the time.
date(1), adjtime(2), ctime(3), timed(8)
The gettimeofday() function call appeared in 4.2BSD.
OpenBSD 3.6 May 26, 1995
[ Back ] |