Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
adjtime(2)			 System	Calls			    adjtime(2)

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

       #include	<sys/time.h>

       int adjtime(struct timeval *delta, struct timeval *olddelta);

       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 sys-
       tem's  clock by some small percentage, generally	a fraction of one per-
       cent. 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.

       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 re-
       sult of this call. If olddelta is not a null pointer, then  the	struc-
       ture  it	 points	to will	contain, 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  a	processes  with	 appropriate privileges	can adjust the time of

       The adjustment value will be silently rounded to	the resolution of  the
       system clock.

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

       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 {PRIV_SYS_TIME} privilege is	not  asserted  in  the
		       effective set of	the calling process.

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

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

       date(1),	gettimeofday(3C), privileges(5)

SunOS 5.10			  20 Jan 2003			    adjtime(2)


Want to link to this manual page? Use this URL:

home | help