ADJTIME(2) System Calls Manual ADJTIME(2)
adjtime - correct the time to allow synchronization of the system clock
int adjtime(delta, olddelta)
struct timeval *delta;
struct timeval *olddelta;
adjtime() adjusts the system's notion of the current time, as returned
by gettimeofday(2), advancing or retarding it by the amount of time
specified in the struct timeval (defined in <<sys/time.h>>) pointed to by
The adjustment is effected by speeding up (if that amount of time is
positive) or slowing down (if that amount of time is negative) the sys-
tem's clock by some small percentage, generally a fraction of one per-
cent. Thus, the time is always a monotonically increasing function. A
time correction from an earlier call to adjtime() may not be finished
when adjtime() is called again. If olddelta is not a NULL pointer,
then the structure it points to will contain, upon return, the number
of microseconds still to be corrected from the earlier call. If old-
delta is a NULL pointer, the corresponding information will not be
This call may be used in time servers that synchronize the clocks of
computers in a local area network. Such time servers would slow down
the clocks of some machines and speed up the clocks of others to bring
them to the average network time.
Only the super-user may adjust the time of day.
The adjustment value will be silently rounded to the resolution of the
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.
EFAULT delta or olddelta points outside the process's allocated
olddelta points to a region of the process' allocated
address space that is not writable.
EPERM The process's effective user ID is not that of the
21 January 1990 ADJTIME(2)