adjtime(2)




NAME

     adjtime - correct the time to allow synchronization  of  the
     system clock


SYNOPSIS

     #include <sys/time.h>

     int adjtime(struct  timeval  *delta,  struct  timeval  *old-
     delta);


DESCRIPTION

     The adjtime() function 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,  gen-
     erally a fraction of one percent. The time is always a mono-
     tonically 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 with 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 con-
     tain, upon successful 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 the super-user may adjust the time of day.

     The adjustment value will be silently rounded to the resolu-
     tion of the system clock.


RETURN VALUES

     Upon successful completion, adjtime() returns 0.  Otherwise,
     it returns -1 and sets errno to indicate the error.


ERRORS

     The adjtime() function will fail if:

     EFAULT
           The delta or  olddelta  argument  points  outside  the
           process's  allocated address space, or olddelta points
           to a region of the process's allocated  address  space
           that is not writable.

     EINVAL
           The tv_usec member of delta is not within valid  range
           (-1000000 to 1000000).

     EPERM The effective user  of  the  calling  process  is  not
           super-user.

     Additionally, the adjtime() function will  fail  for  32-bit
     interfaces if:

     EOVERFLOW
           The size of the tv_sec member of the timeval structure
           pointed  to  by  olddelta  is too small to contain the
           correct number of seconds.


SEE ALSO

     date(1), gettimeofday(3C)


Man(1) output converted with man2html