ntp_gettime, ntp_gettimex — get time parameters (NTP daemon interface)


#include <sys/timex.h>

int ntp_gettime(struct ntptimeval *ntv);

int ntp_gettimex(struct ntptimeval *ntv);


Both of these APIs return information to the caller via the ntv argument, a structure of the following type:

struct ntptimeval {
    struct timeval time;        /* Current time */
    long int maxerror;          /* Maximum error */
    long int esterror;          /* Estimated error */
    long int tai;               /* TAI offset */

    /* Further padding bytes allowing for future expansion */

The fields of this structure are as follows:


The current time, expressed as a timeval structure:

struct timeval {
    time_t      tv_sec;   /* Seconds since the Epoch */
    suseconds_t tv_usec;  /* Microseconds */

Maximum error, in microseconds. This value can be initialized by ntp_adjtime(3), and is increased periodically (on Linux: each second), but is clamped to an upper limit (the kernel constant NTP_PHASE_MAX, with a value of 16,000).


Estimated error, in microseconds. This value can be set via ntp_adjtime(3) to contain an estimate of the difference between the system clock and the true time. This value is not used inside the kernel.


TAI (Atomic International Time) offset.

ntp_gettime() returns an ntptimeval structure in which the time, maxerror, and esterror fields are filled in.

ntp_gettimex() performs the same task as ntp_gettime(), but also returns information in the tai field.

Return Value

The return values for ntp_gettime() and ntp_gettimex() are as for adjtimex(2). Given a correct pointer argument, these functions always succeed.


The ntp_gettime() function is available since glibc 2.1. The ntp_gettimex() function is available since glibc 2.12.


For an explanation of the terms used in this section, see attributes(7).

Interface Attribute Value
ntp_gettime(), ntp_gettimex() Thread safety MT-Safe

Conforming to

ntp_gettime() is described in the NTP Kernel Application Program Interface. ntp_gettimex() is a GNU extension.

See Also

adjtimex(2) ntp_adjtime(3), time(7)

NTP "Kernel Application Program Interface"


This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Referenced By

adjtimex(2), time(7).

The man page ntp_gettimex(3) is an alias of ntp_gettime(3).

2017-09-15 Linux Programmer's Manual