9cfd4d8d8b
modify Makefiles accordingly define __unix__ on Unix like clones (OSX, AIX, etc).
107 lines
1.8 KiB
Groff
107 lines
1.8 KiB
Groff
.TH leapsecs 3
|
|
.SH NAME
|
|
leapsecs \- handle UTC leap seconds
|
|
.SH SYNTAX
|
|
.B #include <leapsecs.h>
|
|
|
|
int \fBleapsecs_sub\fP(&\fIt\fR);
|
|
.br
|
|
void \fBleapsecs_add\fP(&\fIt\fR,\fIhit\fR);
|
|
|
|
int \fBleapsecs_read\fP();
|
|
.br
|
|
int \fBleapsecs_init\fP();
|
|
|
|
struct tai \fIt\fR;
|
|
.br
|
|
int \fIhit\fR;
|
|
.SH DESCRIPTION
|
|
.B leapsecs_sub
|
|
changes a seconds-since-epoch count
|
|
into a non-leap-seconds-since-epoch count.
|
|
It interprets
|
|
.I t
|
|
as a TAI64 label,
|
|
subtracts from
|
|
.I t
|
|
the number of leap seconds that have occurred
|
|
before or at
|
|
.IR t ,
|
|
and places the result back into
|
|
.IR t .
|
|
|
|
.B leapsecs_sub
|
|
returns 1 if
|
|
.I t
|
|
was a leap second,
|
|
0 otherwise.
|
|
|
|
.B leapsecs_add
|
|
reverses the effect of
|
|
.BR leapsecs_sub .
|
|
.I hit
|
|
must be 1
|
|
for a leap second,
|
|
0 otherwise.
|
|
.SH "LEAP-SECOND TABLE"
|
|
The current implementation of
|
|
.B leapsecs_sub
|
|
and
|
|
.B leapsecs_add
|
|
uses a leap-second table read from disk.
|
|
|
|
.B leapsecs_read
|
|
reads the leap-second table from
|
|
.BR /etc/leapsecs.dat .
|
|
It returns 0 on success, -1 on error.
|
|
If
|
|
.B /etc/leapsecs.dat
|
|
does not exist,
|
|
.B leapsecs_read
|
|
treats it as an empty file.
|
|
|
|
.B leapsecs_init
|
|
is a one-time version of
|
|
.BR leapsecs_read .
|
|
Initially it is the same as
|
|
.BR leapsecs_read ;
|
|
however, once
|
|
.B leapsecs_read
|
|
returns 0,
|
|
.B leapsecs_init
|
|
will always return 0
|
|
without calling
|
|
.B leapsecs_read
|
|
again.
|
|
|
|
.B leapsecs_add
|
|
and
|
|
.B leapsecs_sub
|
|
call
|
|
.BR leapsecs_init .
|
|
.B WARNING:
|
|
If
|
|
.B leapsecs_init
|
|
returns failure,
|
|
.B leapsecs_add
|
|
and
|
|
.B leapsecs_sub
|
|
will proceed without a leap-second table.
|
|
For reliability,
|
|
all programs should call
|
|
.B leapsecs_init
|
|
at startup and check for errors.
|
|
|
|
.B WARNING:
|
|
New entries are added to the leap-second table on disk
|
|
every 12 to 18 months.
|
|
.B leapsecs_read
|
|
may be called repeatedly.
|
|
It leaves the old table alone on error.
|
|
For reliability,
|
|
all long-running programs should call
|
|
.B leapsecs_read
|
|
at least once every month.
|
|
.SH "SEE ALSO"
|
|
tai(3)
|