adjtime - Correct the time to allow synchronization of the
system clock
#include <sys/time.h>
int adjtime(
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
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 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 nanoseconds. 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 the error.
If the adjtime() function fails, errno may be set to one
of the following 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)
[ Back ] |