FreeBSD Manual Pages
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.2-RELEASE+and+Ports>