+The structures pointed to by
+.I tp
+and
+.I tzp
+are defined in
+.I <sys/time.h>
+as:
+.PP
+.nf
+.RS
+.DT
+struct timeval {
+ u_long tv_sec; /* seconds since Jan. 1, 1970 */
+ long tv_usec; /* and microseconds */
+};
+.sp 1
+struct timezone {
+ int tz_minuteswest; /* of Greenwich */
+ int tz_dsttime; /* type of dst correction to apply */
+};
+.RE
+.fi
+.PP
+The
+.I 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.
+.PP
+Only the super-user may set the time of day.
+.SH 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 \fIerrno\fP.
+.SH "ERRORS
+The following error codes may be set in \fIerrno\fP:
+.TP 15
+[EFAULT]
+An argument address referenced invalid memory.
+.TP 15
+[EPERM]
+A user other than the super-user attempted to set the time.
+.SH "SEE ALSO"
+date(1), ctime(3)
+.SH BUGS
+Time is never correct enough to believe the microsecond
+values. There should a mechanism by which, at least,
+local clusters of systems might synchronize their clocks
+to millisecond granularity.