Reference

ntp_gettime(2)

NTP user application interface

NAME

ntp_gettime – NTP user application interface

SYNOPSIS

#include <sys/timex.h>

int

ntp_gettime(struct ntptimeval *ntv);

DESCRIPTION

The time returned by ntp_gettime() is in a timespec structure, but may be in either microsecond (seconds and microseconds) or nanosecond (seconds and nanoseconds) format. The particular format in use is determined by the STA_NANO bit of the status word returned by the ntp_adjtime() system call. ntp_gettime() has as argument a pointer to the ntptimeval structure with the following members:

struct ntptimeval {
	struct timespec time;	/* current time (ns) (ro) */
	long maxerror;		/* maximum error (us) (ro) */
	long esterror;		/* estimated error (us) (ro) */
	long tai;		/* TAI-UTC offset */
	int time_state;		/* time status */
};

These are understood as:

time

Current time (read-only).

maxerror

Maximum error in microseconds (read-only).

esterror

Estimated error in microseconds (read-only).

tai

Offset in seconds between the TAI and UTC time scales. This offset is published twice a year and is an integral number of seconds between TAI (which does not have leap seconds) and UTC (which does). ntpd(8) or some other agent maintains this value. A value of 0 means unknown. As of the date of the manual page, the offset is 32 seconds.

time_state

Current time status.

RETURN VALUES

The ntp_gettime() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

Possible states of the clock are:

TIME_OK

Everything okay, no leap second warning.

TIME_INS

Positive leap second warning. At the end of the day, an additional second will be inserted after 23:59:59.

TIME_DEL

Negative leap second warning. At the end of the day, 23:59:59 is skipped.

TIME_OOP

Leap second in progress.

TIME_WAIT

Leap second has occurred.

TIME_ERROR

Clock not synchronized.

SEE ALSO

ntp_adjtime(2), ntpd(8)

http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html
http://www.boulder.nist.gov/timefreq/general/faq.htm
ftp://time.nist.gov/pub/leap-seconds.list

AUTHORS

This manual page was written by Tom Rhodes ⟨[email protected]⟩.