NAME 
gettimeofday, settimeofday - get/set date and time
SYNOPSIS 
#include <sys/time.h>
gettimeofday(tp, tzp) 
struct timeval *tp; 
struct timezone *tzp;
settimeofday(tp, tzp) 
struct timeval *tp; 
struct timezone *tzp;
DESCRIPTION 
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 super-user may set the time of day or time zone.
RETURN 
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.
ERRORS 
The following error codes may be set in errno:
[EFAULT] An argument address referenced invalid memory.
[EPERM] A user other than the
super-user attempted to set 
the time.
SEE ALSO 
date(1), adjtime(2), ctime(3)