int adjtime (
struct timeval *delta,
struct timeval *old_delta );
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 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 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. However, 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.
Functions: gettimeofday(2), gettimer(3) delim off