xref: /illumos-gate/usr/src/man/man3c/gettimeofday.3c (revision 8c69cc8fbe729fa7b091e901c4b50508ccc6bb33)
te
Copyright 1989 AT&T. Copyright (c) 1980 Regents of the University of California. All rights reserved. The Berkeley software License Agreement specifies the terms and conditions for redistribution. Copyright (c) 2003, Sun Microsystems, Inc. All Rights Reserved.
GETTIMEOFDAY 3C "Aug 1, 2003"
NAME
gettimeofday, settimeofday - get or set the date and time
SYNOPSIS

#include <sys/time.h>

int gettimeofday(struct timeval *tp, void *tzp);

int settimeofday(struct timeval *tp, void *tzp);
DESCRIPTION

The gettimeofday() function gets and the settimeofday() function sets the system's notion of the current time. The current time is expressed in elapsed seconds and microseconds since 00:00 Universal Coordinated Time, January 1, 1970. The resolution of the system clock is hardware dependent; the time may be updated continuously or in clock ticks.

The tp argument points to a timeval structure, which includes the following members:

long tv_sec; /* seconds since Jan. 1, 1970 */
long tv_usec; /* and microseconds */

If tp is a null pointer, the current time information is not returned or set.

The TZ environment variable holds time zone information. See TIMEZONE(4).

The tzp argument to gettimeofday() and settimeofday() is ignored.

Only privileged processes can set the time of day.

RETURN VALUES

Upon successful completion, 0 is returned. Otherwise, -1 is returned and errno is set to indicate the error.

ERRORS

The settimeofday() function will fail if: EINVAL

The structure pointed to by tp specifies an invalid time.

EPERM

The {PRIV_SYS_TIME} privilege was not asserted in the effective set of the calling process.

The gettimeofday() function will fail for 32-bit interfaces if: EOVERFLOW

The system time has progressed beyond 2038, thus the size of the tv_sec member of the timeval structure pointed to by tp is insufficient to hold the current time in seconds.

USAGE

If the tv_usec member of tp is > 500000, settimeofday() rounds the seconds upward. If the time needs to be set with better than one second accuracy, call settimeofday() for the seconds and then adjtime(2) for finer accuracy.

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability gettimeofday() is Standard.
MT-Level MT-Safe
SEE ALSO

adjtime(2), ctime(3C), gethrtime(3C), TIMEZONE(4), attributes(5), privileges(5), standards(5)