adjtime - Corrects the time to allow synchronization of the system clock
int adjtime (
struct timeval *delta,
struct timeval *old_delta );
delta Points to the amount of time to be altered.
old_delta Points to the number of nanoseconds still to be corrected from an
The adjtime() function makes small adjustments to the system time (as
returned by the gettimer() function), advancing or decreasing it by the
time specified by the delta parameter of the timeval structure. If delta
is negative, the clock is slowed down by incrementing it more slowly than
normal until the correction is complete. If delta is positive, a larger
increment than normal is used until the correction is complete.
The skew used to perform the correction is 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. In this case, the delta remaining from the
original call is replaced by the delta of the current call. If the
old_delta parameter is nonzero, then when the adjtime() function returns,
the structure pointed to will contain the time remaining from the earlier
This call may be used by time servers that synchronize the clocks of com-
puters 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.
The adjtime() function is restricted to users with superuser privilege.
In BSD, system time is defined in units of seconds and microseconds, while
in POSIX real time extensions, the units are seconds and nanoseconds. How-
ever, the adjtime() function is not specified by POSIX. Therefore, the
existing BSD interface is preserved.
Upon successful completion, the adjtime() function returns a 0 (zero). If
the adjtime() function fails, a value of -1 is returned, and errno is set
to indicate the error.
If the adjtime() function fails, errno may be set to one of the following
[EFAULT] An argument address referenced invalid memory.
[EPERM] The process's effective user ID does not have appropriate system
Functions: gettimeofday(2), gettimer(3)