NAME
clock_gettime, clock_settime, clock_getres — get/set/calibrate date and timeLIBRARY
Standard C Library (libc, -lc)SYNOPSIS
#include <time.h> intclock_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);
DESCRIPTION
The clock_gettime() and clock_settime() system calls allow the calling process to retrieve or set the value used by a clock which is specified by clock_id. The clock_id argument can be a value obtained from clock_getcpuclockid(3) or pthread_getcpuclockid(3) as well as the following values:CLOCK_REALTIME
CLOCK_REALTIME_PRECISE
CLOCK_REALTIME_FAST
- Increments as a wall clock should.
CLOCK_MONOTONIC
CLOCK_MONOTONIC_PRECISE
CLOCK_MONOTONIC_FAST
- Increments in SI seconds.
CLOCK_UPTIME
CLOCK_UPTIME_PRECISE
CLOCK_UPTIME_FAST
- Starts at zero when the kernel boots and increments monotonically in SI seconds while the machine is running.
CLOCK_VIRTUAL
- Increments only when the CPU is running in user mode on behalf of the calling process.
CLOCK_PROF
- Increments when the CPU is running in user or kernel mode.
CLOCK_SECOND
- Returns the current second without performing a full time counter query, using an in-kernel cached value of the current second.
CLOCK_PROCESS_CPUTIME_ID
- Returns the execution time of the calling process.
CLOCK_THREAD_CPUTIME_ID
- Returns the execution time of the calling thread.
struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* and nanoseconds */ };
RETURN VALUES
Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.ERRORS
The following error codes may be set in errno:- [
EINVAL
] - The clock_id or timespec argument was not a valid value.
- [
EPERM
] - A user other than the super-user attempted to set the time.
SEE ALSO
date(1), adjtime(2), clock_getcpuclockid(3), ctime(3), pthread_getcpuclockid(3), timed(8)STANDARDS
The clock_gettime(), clock_settime(), and clock_getres() system calls conform to IEEE Std 1003.1b-1993 (“POSIX.1b”). The clock IDs CLOCK_REALTIME_FAST, CLOCK_REALTIME_PRECISE, CLOCK_MONOTONIC_FAST, CLOCK_MONOTONIC_PRECISE, CLOCK_UPTIME, CLOCK_UPTIME_FAST, CLOCK_UPTIME_PRECISE, CLOCK_SECOND are FreeBSD extensions to the POSIX interface.HISTORY
The clock_gettime(), clock_settime(), and clock_getres() system calls first appeared in FreeBSD 3.0.December 7, 2019 | Debian |