adjtime(2)adjtime(2)NAMEadjtime - Correct the time to allow synchronization of the system clock
struct timeval *delta,
struct timeval *old_delta );
Points to the amount of time to be altered. Points to the number of
nanoseconds still to be corrected from an earlier call.
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 posi‐
tive, a larger increment than normal is used until the correction is
The skew used to perform the correction is 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. 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 call.
This call may be used by 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. The adjtime() function is restricted
to users with the 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 nanosec‐
onds. However, the adjtime() function is not specified by POSIX.
Therefore, the existing BSD interface is preserved.
On successful completion, the adjtime() function returns 0 (zero). If
the adjtime() function fails, it returns -1 and sets errno to indicate
If the adjtime() function fails, errno may be set to one of the follow‐
ing values: An argument address referenced invalid memory. The
process's effective user ID does not have appropriate system privilege.
Functions: gettimeofday(2), gettimer(3)adjtime(2)