## NAME

clock_settime, clock_gettime, clock_getres - high-resolution clock operations

## SYNOPSIS

#include <time.h>

int clock_settime(clockid_t clock_id,
  const struct timespec *tp );
int clock_gettime(clockid_t clock_id , struct timespec *tp );
int clock_getres(clockid_t clock_id , struct timespec *res );
struct timespec {
  time_t tv_sec; /* seconds */
  long tv_nsec; /* and nanoseconds */
};

## DESCRIPTION

clock_settime() sets the specified clock, clock_id, to the value specified by tp.

clock_gettime() returns the current value tp for the specified clock, clock_id.

The resolution of any clock can be obtained by calling clock_getres(). If res is not NULL, the resolution of the specified clock is stored in res.

The clock_id for the real-time clock for the system is CLOCK_REALTIME. The values returned by clock_gettime() and specified by clock_settime() represent the amount of time (in seconds and nanoseconds) since 00:00 Universal Coordinated Time, January 1, 1970.

The clock_id for the momotonic clock for the system is CLOCK_MONOTONIC. The values returned by clock_gettime() represents the amount of time (in seconds and nanoseconds) since system start-up time. The value of the CLOCK_MONOTONIC clock cannot be set via clock_settime().

## RETURN VALUES

clock_settime(), clock_gettime(), and clock_getres() return 0 upon success, otherwise they return -1 and set errno to indicate the error condition.

## ERRORS

EINVAL
  clock_id does not specify a known clock.
  The tp argument to clock_settime() is outside the range for the given clock id.
  The tp argument to clock_settime() specified a nanosecond value less than zero or greater than or equal to 1,000,000,000.

## NOTES

By default, the clock starts at 00:00:00 unless clock_settime() is called.

#### Home page (Kernel)

## < Copyright Rowebots Research Inc. and Multiprocessor Toolsmiths Inc. 1987-2018 >