adjtime - correct the time to allow synchronization of the system clock
int adjtime(struct timeval *delta, struct timeval *olddelta);
adjtime adjusts the system's notion of the current time, as returned by
gettimeofday(3C), advancing or retarding it by the amount of time
specified in the struct timeval pointed to by delta.
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
system's clock by some small percentage, generally a fraction of one
percent. 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 delta is 0, then olddelta returns the
status of the effects of the previous adjtime call and there is no effect
on the time correction as a result of this call. If olddelta is not a
NULL pointer, then the structure it points to will contain, upon return,
the number of seconds and/or microseconds still to be corrected from the
earlier call. If olddelta is a NULL pointer, the corresponding
information will not be returned.
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 a process with the super-user privilege can 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.
The following error codes may be set in errno:
EFAULT delta or olddelta points outside the process's
allocated address space, or olddelta points to a
region of the process' allocated address space that
is not writable.
EPERM The calling process does not have the super-user
privilege to change the time of day.
EINVAL The value of delta is not an acceptable value, it is
either too large or too small.
PPPPaaaaggggeeee 2222 [ Back ]