| CLOCK_GETTIME(3) | Library Functions Manual | CLOCK_GETTIME(3) |
clock_gettime,
clock_settime, clock_getres,
clock_gettime_nsec_np —
get/set date and time
#include
<time.h>
int
clock_gettime(clockid_t
clock_id, struct timespec
*tp);
int
clock_settime(clockid_t
clock_id, const struct
timespec *tp);
int
clock_getres(clockid_t
clock_id, struct timespec
*tp);
uint64_t
clock_gettime_nsec_np(clockid_t
clock_id);
The
clock_gettime()
and
clock_settime()
functions allow the calling process to retrieve or set the value used by a
clock which is specified by clock_id.
clock_id can be a value from one of 8 predefined values:
CLOCK_REALTIMECLOCK_MONOTONICCLOCK_MONOTONIC_RAWCLOCK_MONOTONIC_RAW_APPROXCLOCK_UPTIME_RAWCLOCK_MONOTONIC_RAW, but that does not increment
while the system is asleep. The returned value is identical to the result
of
mach_absolute_time()
after the appropriate mach_timebase conversion is applied.CLOCK_UPTIME_RAW_APPROXCLOCK_PROCESS_CPUTIME_IDCLOCK_THREAD_CPUTIME_IDThe structure pointed to by tp is defined in
<sys/time.h> as:
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* and nanoseconds */
};
Only the CLOCK_REALTIME clock can be set,
and only the superuser may do so.
The resolution of a clock is returned by the
clock_getres()
call. This value is placed in a (non-null) *tp. This
value may be smaller than the actual precision of the underlying clock, but
represents a lower bound on the resolution.
As a non-portable extension, the
clock_gettime_nsec_np()
function will return the clock value in 64-bit nanoseconds.
A 0 return value indicates that the call succeeded. A -1 return
value indicates an error occurred, and in this case an error code is stored
into the global variable errno. For
clock_gettime_nsec_np() a return value of non-0
indicates success. A 0 return value indicates an error occurred and an error
code is stored in errno.
clock_gettime(),
clock_settime(),
clock_getres(), and
clock_gettime_nsec_np() will fail if:
In addition, clock_settime() may return
the following errors:
These functions first appeared in Mac OSX 10.12
The clock_gettime(),
clock_settime(), and
clock_getres() system calls conform to
IEEE Std 1003.1b-1993 (“POSIX.1b”).
clock_gettime_nsec_np() is a non-portable Darwin
extension. The clock IDs CLOCK_MONOTONIC_RAW and
CLOCK_UPTIME_RAW are extensions to the POSIX
interface.
| January 26, 2016 | Mac OS X 12 |