FreeBSD 7.0 manual page repository

FreeBSD is a free computer operating system based on BSD UNIX originally. Many IT companies, like DeployIS is using it to provide an up-to-date, stable operating system.

clock_gettime, clock_settime, clock_getres - get/set/calibrate date and



      clock_gettime, clock_settime, clock_getres - get/set/calibrate date and


      Standard C Library (libc, -lc)


      #include <time.h>
      clock_gettime(clockid_t clock_id, struct timespec *tp);
      clock_settime(clockid_t clock_id, const struct timespec *tp);
      clock_getres(clockid_t clock_id, struct timespec *tp);


      The clock_gettime() and clock_settime() 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 #include <sys/timespec.h>
      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
      arbitrary time stamps on files.  The system time can still be adjusted
      backwards using the adjtime(2) system call even when the system is
      The resolution (granularity) of a clock is returned by the clock_getres()
      system call.  This value is placed in a (non-NULL) *tp.
      Upon successful completion, the value 0 is returned; otherwise the
      value -1 is returned and the global variable errno is set to indicate the


      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
      date(1), adjtime(2), ctime(3), timed(8)


      The clock_gettime(), clock_settime(), and clock_getres() system calls
      conform to IEEE Std 1003.1b-1993 (“POSIX.1”).


Based on BSD UNIX
FreeBSD is an advanced operating system for x86 compatible (including Pentium and Athlon), amd64 compatible (including Opteron, Athlon64, and EM64T), UltraSPARC, IA-64, PC-98 and ARM architectures. It is derived from BSD, the version of UNIX developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in various stages of development.