table of contents
other sections
| CLOCK_GETTIME(2) | System Calls Manual | CLOCK_GETTIME(2) |
NAME¶
clock_gettime,
clock_settime,
clock_getres —
get/set/calibrate date and time
LIBRARY¶
Standard C Library (libc, -lc)SYNOPSIS¶
#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);
DESCRIPTION¶
Theclock_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 one of the
following values: CLOCK_REALTIME,
CLOCK_REALTIME_PRECISE,
CLOCK_REALTIME_FAST for time that
increments as a wall clock should;
CLOCK_MONOTONIC,
CLOCK_MONOTONIC_PRECISE,
CLOCK_MONOTONIC_FAST which increments in SI
seconds; CLOCK_UPTIME,
CLOCK_UPTIME_PRECISE,
CLOCK_UPTIME_FAST which starts at zero when
the kernel boots and increments monotonically in SI seconds while the machine
is running; CLOCK_VIRTUAL for time that
increments only when the CPU is running in user mode on behalf of the calling
process; CLOCK_PROF for time that
increments when the CPU is running in user or kernel mode; or
CLOCK_SECOND which returns the current
second without performing a full time counter query, using in-kernel cached
value of current second.
The clock IDs CLOCK_REALTIME_FAST,
CLOCK_MONOTONIC_FAST,
CLOCK_UPTIME_FAST are analogs of
corresponding IDs without _FAST suffix but do not perform a full time counter
query, so their accuracy is one timer tick. Similarly,
CLOCK_REALTIME_PRECISE,
CLOCK_MONOTONIC_PRECISE,
CLOCK_UPTIME_PRECISE are used to get the most
exact value as possible, at the expense of execution time.
The structure pointed to by tp is defined in
<sys/timespec.h>
as:
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* and nanoseconds */
};
clock_getres() system call. This value is
placed in a (non-NULL) *tp.
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 argument was not a valid value.
- [
EFAULT] - The *tp argument address referenced invalid memory.
- [
EPERM] - A user other than the super-user attempted to set the time.
SEE ALSO¶
date(1), adjtime(2), ctime(3), timed(8)STANDARDS¶
Theclock_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.| December 29, 2009 | Debian |