• Last 5 Forum Topics
    Last post

The Web Only This Site



  • MARC

    Mailing list ARChives
    - Search by -


    Computing Dictionary

  • Text Link Ads

  • LINUX man pages
  • Linux Man Page Viewer

    The following form allows you to view linux man pages.





           #include <time.h>
           int clock_getres(clockid_t clk_id, struct timespec *res);
           int clock_gettime(clockid_t clk_id, struct timespec *tp);
           int clock_settime(clockid_t clk_id, const struct timespec *tp);
           Link with -lrt (only for glibc versions before 2.17).
       Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
           clock_getres(), clock_gettime(), clock_settime():
                  _POSIX_C_SOURCE >= 199309L


           The  function  clock_getres()  finds  the resolution (precision) of the
           specified clock clk_id, and, if res  is  non-NULL,  stores  it  in  the
           struct timespec pointed to by res.  The resolution of clocks depends on
           the implementation and cannot be configured by  a  particular  process.
           If  the  time value pointed to by the argument tp of clock_settime() is
           not a multiple of res, then it is truncated to a multiple of res.
           The functions clock_gettime() and clock_settime() retrieve and set  the
           time of the specified clock clk_id.
           The  res  and  tp  arguments  are  timespec structures, as specified in
               struct timespec {
                   time_t   tv_sec;        /* seconds */
                   long     tv_nsec;       /* nanoseconds */
           The clk_id argument is the identifier of the particular clock on  which
           to  act.   A  clock  may  be system-wide and hence visible for all pro-
           cesses, or per-process if it measures time only within  a  single  pro-
           All  implementations  support the system-wide real-time clock, which is
           identified by CLOCK_REALTIME.  Its time represents seconds and nanosec-
           onds  since the Epoch.  When its time is changed, timers for a relative
           interval are unaffected, but timers for an absolute point in  time  are
           More  clocks may be implemented.  The interpretation of the correspond-
           ing time values and the effect on timers is unspecified.
           Sufficiently recent versions of glibc and the Linux kernel support  the
           following clocks:
                  since some unspecified starting point.  This clock is not
                  affected by discontinuous jumps in the system time (e.g.,
                  if  the system administrator manually changes the clock),
                  but is affected by the incremental adjustments  performed
                  by adjtime(3) and NTP.
           CLOCK_MONOTONIC_COARSE (since Linux 2.6.32; Linux-specific)
                  A  faster  but  less  precise version of CLOCK_MONOTONIC.
                  Use when you need very fast, but not fine-grained  times-
           CLOCK_MONOTONIC_RAW (since Linux 2.6.28; Linux-specific)
                  Similar  to CLOCK_MONOTONIC, but provides access to a raw
                  hardware-based time that is not subject  to  NTP  adjust-
                  ments  or  the  incremental adjustments performed by adj-
           CLOCK_BOOTTIME (since Linux 2.6.39; Linux-specific)
                  Identical to CLOCK_MONOTONIC, except it also includes any
                  time  that the system is suspended.  This allows applica-
                  tions to get a suspend-aware monotonic clock without hav-
                  ing  to  deal  with  the complications of CLOCK_REALTIME,
                  which may have discontinuities if  the  time  is  changed
                  using settimeofday(2).
           CLOCK_PROCESS_CPUTIME_ID (since Linux 2.6.12)
                  Per-process CPU-time clock (measures CPU time consumed by
                  all threads in the process).
           CLOCK_THREAD_CPUTIME_ID (since Linux 2.6.12)
                  Thread-specific CPU-time clock.


           clock_gettime(), clock_settime() and clock_getres() return 0 for
           success, or -1 for failure (in which case errno is set appropri-


           EFAULT tp points outside the accessible address space.
           EINVAL The clk_id specified is not supported on this system.
           EPERM  clock_settime() does not have permission to set the clock


           These system calls first appeared in Linux 2.6.


           SUSv2, POSIX.1-2001.


           cess is migrated to another CPU.
           If  the CPUs in an SMP system have different clock sources, then
           there is no way to maintain a correlation between the timer reg-
           isters  since  each  CPU  will  run at a slightly different fre-
           quency.  If that is the case, then  clock_getcpuclockid(0)  will
           return  ENOENT  to  signify this condition.  The two clocks will
           then be useful only if it can be ensured that a process stays on
           a certain CPU.
           The  processors in an SMP system do not start all at exactly the
           same time and therefore the timer registers are  typically  run-
           ning  at  an  offset.   Some  architectures  include  code  that
           attempts to limit these offsets on bootup.   However,  the  code
           cannot guarantee to accurately tune the offsets.  Glibc contains
           no provisions to deal with these offsets (unlike the Linux  Ker-
           nel).   Typically  these  offsets  are  small  and therefore the
           effects may be negligible in most cases.
           Since glibc 2.4, the wrapper  functions  for  the  system  calls
           described  in  this  page  avoid  the abovementioned problems by
           employing the kernel implementation of  CLOCK_PROCESS_CPUTIME_ID
           and  CLOCK_THREAD_CPUTIME_ID,  on  systems  that provide such an
           implementation (i.e., Linux 2.6.12 and later).


           According to POSIX.1-2001, a process  with  "appropriate  privi-
           leges"     may     set    the    CLOCK_PROCESS_CPUTIME_ID    and
           CLOCK_THREAD_CPUTIME_ID clocks using clock_settime().  On Linux,
           these clocks are not settable (i.e., no process has "appropriate


           date(1), gettimeofday(2), settimeofday(2), time(2),  adjtime(3),
           clock_getcpuclockid(3),   ctime(3),   ftime(3),  pthread_getcpu-
           clockid(3), sysconf(3), time(7)
                                      2013-12-28                   CLOCK_GETRES(2)

  • Linux

    The Distributions


    The Software


    The News


  • Toll Free
Copyright © 1999 - 2016 by LinuxGuruz