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-sec-
       onds-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/lo-
       cal/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  pro-
       ceed 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 table alone on error.  For reliability, all  long-running  pro-
       grams should call leapsecs_read at least	once every month.

SEE ALSO
       tai(3)

								   leapsecs(3)

NAME | SYNTAX | DESCRIPTION | LEAP-SECOND TABLE | SEE ALSO

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

home | help