CLOCK_SETTIME(2)

NAME
clock_settime, clock_gettime, clock_getres - clock and timer functions

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);

DESCRIPTION
The clock_settime() function sets the clock identified by clock_id to the absolute time specified by tp. If the time specified by tp is not a multiple of the resolution of the clock, tp is truncated to a multiple of the resolution.

clock_gettime() function stores the time of the clock identified by clock_id into the location specified by tp.

The clock_getres() function stores the resolution of the clock identified by clock_id into the location specified by res, unless res is NULL.

A clock_id of CLOCK_REALTIME identifies the realtime clock for the system. For this clock, the values specified by clock_settime() and obtained by clock_gettime() represent the amount of time (in seconds and nanoseconds) since 00:00 Universal Coordinated Time, January 1, 1970.

RETURN VALUES
A value of 0 is returned on success. Otherwise, a value of -1 is returned and errno is set to indicate the error.

ERRORS
The clock_settime(), clock_gettime() and clock_getres() functions will fail if:

[EINVAL]
    The clock_id argument does not specify a known clock.

[ENOSYS]
    The function is not supported by this implementation.

The clock_settime() function will fail if:

[EINVAL]
    The tp argument is outside the range for the specified clock, clock_id.

[EINVAL]
    The tp argument specified a nanosecond value less than zero of greater than or equal 1000 million.

[EPERM]
    The calling process does not have the appropriate privilege to set the specified clock, clock_id.

The clock_gettime() function will fail if:

[EFAULT]
    The tp argument specifies an address that is not a valid part of the process address space.

SEE ALSO
ctime(3), time(3)

STANDARDS
The clock_settime(), clock_gettime() and clock_getres() functions conform to p1003.1b-93.