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

FreeBSD Manual Pages

  
 
  

home | help
leapsecs(3)		    Library Functions Manual		     leapsecs(3)

NAME
     leapsecs - handle UTC leap seconds

SYNTAX
     #include <leapsecs.h>

     int leapsecs_sub(&t);
     void leapsecs_add(&t,hit);

     int leapsecs_read();
     int leapsecs_init();

     struct tai t;
     int hit;

DESCRIPTION
     leapsecs_sub  changes  a seconds-since-epoch count into a non-leap-seconds-
     since-epoch count.  It interprets t as a TAI64 label, subtracts from t  the
     number  of  leap  seconds that have occurred before or at t, and places the
     result back into t.

     leapsecs_sub returns 1 if t was a leap second, 0 otherwise.

     leapsecs_add reverses the effect of leapsecs_sub.	hit must be 1 for a leap
     second, 0 otherwise.

LEAP-SECOND TABLE
     The current implementation of leapsecs_sub and leapsecs_add  uses	a  leap-
     second table read from disk.

     leapsecs_read reads the leap-second table from /usr/local/etc/leapsecs.dat.
     It  returns 0 on success, -1 on error.  If /usr/local/etc/leapsecs.dat does
     not exist, leapsecs_read treats it as an empty file.

     leapsecs_init is a one-time version of leapsecs_read.  Initially it is  the
     same as leapsecs_read; however, once leapsecs_read returns 0, leapsecs_init
     will always return 0 without calling leapsecs_read again.

     leapsecs_add    and   leapsecs_sub   call	 leapsecs_init.    WARNING:   If
     leapsecs_init returns failure, leapsecs_add and leapsecs_sub  will  proceed
     without  a  leap-second  table.   For reliability, all programs should call
     leapsecs_init at startup and check for errors.

     WARNING: New entries are added to the leap-second table on disk every 12 to
     18 months.  leapsecs_read may be called repeatedly.  It leaves the old  ta-
     ble alone on error.  For reliability, all long-running programs should call
     leapsecs_read at least once every month.

SEE ALSO
     tai(3)

								     leapsecs(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=leapsecs&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help