FreeBSD Manual Pages
CLOCK_GETTIME(2) BSD 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 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 one of five values: CLOCK_REALTIME for time that increments as a wall clock should, CLOCK_MONOTONIC which increments in SI seconds, CLOCK_UPTIME 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, or CLOCK_PROF for time that increments when the CPU is running in user or kernel mode. 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 */ }; Only the super-user may set the time of day. If the system securelevel is greater than 1 (see init(8)), the time may only be advanced. This limitation is imposed to prevent a malicious super-user from setting ar- bitrary time stamps on files. The system time can still be adjusted backwards using the adjtime(2) system call even when the system is se- cure. The resolution (granularity) of a clock is returned by the 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 The clock_gettime(), clock_settime(), and clock_getres() system calls conform to IEEE Std 1003.1b-1993 ("POSIX.1"). BSD November 4, 2006 BSD
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=clock_gettime&sektion=2&manpath=FreeBSD+8.0-RELEASE>