CLOCK_GETRES man page on Manjaro

Man page or keyword search:  
man Server   11224 pages
apropos Keyword Search (all sections)
Output format
Manjaro logo
[printable version]

CLOCK_GETRES(3P)	   POSIX Programmer's Manual	      CLOCK_GETRES(3P)

PROLOG
       This  manual  page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the	 corresponding
       Linux  manual page for details of Linux behavior), or the interface may
       not be implemented on Linux.

NAME
       clock_getres, clock_gettime, clock_settime — clock and timer functions

SYNOPSIS
       #include <time.h>

       int clock_getres(clockid_t clock_id, struct timespec *res);
       int clock_gettime(clockid_t clock_id, struct timespec *tp);
       int clock_settime(clockid_t clock_id, const struct timespec *tp);

DESCRIPTION
       The clock_getres() function shall return the resolution of  any	clock.
       Clock  resolutions  are	implementation-defined	and cannot be set by a
       process. If the argument res is not NULL, the resolution of the	speci‐
       fied  clock  shall be stored in the location pointed to by res.	If res
       is NULL, the clock resolution is not returned. If the time argument  of
       clock_settime()	is  not a multiple of res, then the value is truncated
       to a multiple of res.

       The clock_gettime() function shall return the current value tp for  the
       specified clock, clock_id.

       The  clock_settime()  function shall set the specified clock, clock_id,
       to the value specified by tp.  Time values that are between two consec‐
       utive non-negative integer multiples of the resolution of the specified
       clock shall be truncated down to the smaller multiple  of  the  resolu‐
       tion.

       A  clock may be system-wide (that is, visible to all processes) or per-
       process (measuring time that is meaningful only within a process).  All
       implementations	shall  support a clock_id of CLOCK_REALTIME as defined
       in <time.h>.  This clock represents the clock measuring real  time  for
       the system.  For this clock, the values returned by clock_gettime() and
       specified by clock_settime() represent the amount of time  (in  seconds
       and  nanoseconds)  since	 the Epoch. An implementation may also support
       additional clocks. The interpretation of time values for	 these	clocks
       is unspecified.

       If  the	value  of the CLOCK_REALTIME clock is set via clock_settime(),
       the new value of the clock shall be used to determine the time of expi‐
       ration  for absolute time services based upon the CLOCK_REALTIME clock.
       This applies to the time at which armed absolute timers expire.	If the
       absolute	 time  requested  at  the invocation of such a time service is
       before the new value of the clock, the time service shall expire	 imme‐
       diately as if the clock had reached the requested time normally.

       Setting the value of the CLOCK_REALTIME clock via clock_settime() shall
       have no effect on threads that are blocked waiting for a relative  time
       service	based upon this clock, including the nanosleep() function; nor
       on the expiration of relative timers  based  upon  this	clock.	Conse‐
       quently,	 these	time services shall expire when the requested relative
       interval elapses, independently of the new or old value of the clock.

       If the Monotonic Clock option is supported, all	implementations	 shall
       support	a clock_id of CLOCK_MONOTONIC defined in <time.h>.  This clock
       represents the monotonic clock for the  system.	For  this  clock,  the
       value  returned	by  clock_gettime()  represents the amount of time (in
       seconds and nanoseconds) since an unspecified point in  the  past  (for
       example,	 system	 start-up  time,  or  the  Epoch). This point does not
       change after system start-up time. The  value  of  the  CLOCK_MONOTONIC
       clock  cannot  be set via clock_settime().  This function shall fail if
       it is invoked with a clock_id argument of CLOCK_MONOTONIC.

       The effect of setting a clock via clock_settime() on armed  per-process
       timers associated with a clock other than CLOCK_REALTIME is implementa‐
       tion-defined.

       If the value of the CLOCK_REALTIME clock is  set	 via  clock_settime(),
       the new value of the clock shall be used to determine the time at which
       the  system  shall   awaken   a	 thread	  blocked   on	 an   absolute
       clock_nanosleep()  call	based  upon  the  CLOCK_REALTIME clock. If the
       absolute time requested at the invocation of such  a  time  service  is
       before the new value of the clock, the call shall return immediately as
       if the clock had reached the requested time normally.

       Setting the value of the CLOCK_REALTIME clock via clock_settime() shall
       have   no   effect  on  any  thread  that  is  blocked  on  a  relative
       clock_nanosleep() call. Consequently, the call shall  return  when  the
       requested  relative  interval  elapses, independently of the new or old
       value of the clock.

       Appropriate privileges to set a particular  clock  are  implementation-
       defined.

       If  _POSIX_CPUTIME  is  defined, implementations shall support clock ID
       values obtained by invoking clock_getcpuclockid(), which represent  the
       CPU-time	 clock	of a given process. Implementations shall also support
       the special clockid_t value CLOCK_PROCESS_CPUTIME_ID, which  represents
       the  CPU-time  clock  of	 the  calling process when invoking one of the
       clock_*() or timer_*() functions.  For  these  clock  IDs,  the	values
       returned	 by clock_gettime() and specified by clock_settime() represent
       the amount of execution time of the process associated with the	clock.
       Changing	 the  value of a CPU-time clock via clock_settime() shall have
       no effect on the behavior of the sporadic server scheduling policy (see
       Scheduling Policies).

       If  _POSIX_THREAD_CPUTIME  is  defined,	implementations	 shall support
       clock ID values obtained	 by  invoking  pthread_getcpuclockid(),	 which
       represent  the  CPU-time clock of a given thread. Implementations shall
       also support the special clockid_t value CLOCK_THREAD_CPUTIME_ID, which
       represents  the	CPU-time clock of the calling thread when invoking one
       of the clock_*() or timer_*() functions. For these clock IDs, the  val‐
       ues  returned by clock_gettime() and specified by clock_settime() shall
       represent the amount of execution time of the  thread  associated  with
       the  clock.  Changing the value of a CPU-time clock via clock_settime()
       shall have no effect on the behavior of the sporadic server  scheduling
       policy (see Scheduling Policies).

RETURN VALUE
       A  return  value	 of 0 shall indicate that the call succeeded. A return
       value of −1 shall indicate that an error occurred, and errno  shall  be
       set to indicate the error.

ERRORS
       The  clock_getres(),  clock_gettime(),  and  clock_settime()  functions
       shall fail if:

       EINVAL The clock_id argument does not specify a known clock.

       The clock_gettime() function shall fail if:

       EOVERFLOW
	      The number of seconds will not fit in an object of type time_t.

       The clock_settime() function shall fail if:

       EINVAL The tp argument to clock_settime() is outside the range for  the
	      given clock ID.

       EINVAL The  tp  argument specified a nanosecond value less than zero or
	      greater than or equal to 1000 million.

       EINVAL The value of the clock_id argument is CLOCK_MONOTONIC.

       The clock_settime() function may fail if:

       EPERM  The requesting process does not have appropriate	privileges  to
	      set the specified clock.

       The following sections are informative.

EXAMPLES
       None.

APPLICATION USAGE
       Note  that  the	absolute  value	 of the monotonic clock is meaningless
       (because its origin is arbitrary), and thus there is no need to set it.
       Furthermore,  realtime applications can rely on the fact that the value
       of this clock is never set and, therefore, that time intervals measured
       with this clock will not be affected by calls to clock_settime().

RATIONALE
       None.

FUTURE DIRECTIONS
       None.

SEE ALSO
       Scheduling Policies, clock_getcpuclockid(), clock_nanosleep(), ctime(),
       mq_receive(), mq_send(), nanosleep(), pthread_mutex_timedlock(),
       sem_timedwait(), time(), timer_create(), timer_getoverrun()

       The Base Definitions volume of POSIX.1‐2008, <time.h>

COPYRIGHT
       Portions	 of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology
       --  Portable  Operating	System	Interface (POSIX), The Open Group Base
       Specifications Issue 7, Copyright (C) 2013 by the Institute of Electri‐
       cal  and	 Electronics  Engineers,  Inc  and  The	 Open Group.  (This is
       POSIX.1-2008 with the 2013 Technical Corrigendum	 1  applied.)  In  the
       event of any discrepancy between this version and the original IEEE and
       The Open Group Standard, the original IEEE and The Open Group  Standard
       is  the	referee document. The original Standard can be obtained online
       at http://www.unix.org/online.html .

       Any typographical or formatting errors that appear  in  this  page  are
       most likely to have been introduced during the conversion of the source
       files to man page format. To report such errors,	 see  https://www.ker‐
       nel.org/doc/man-pages/reporting_bugs.html .

IEEE/The Open Group		     2013		      CLOCK_GETRES(3P)
[top]

List of man pages available for Manjaro

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net