Provided by: manpages-posix-dev_2.16-1_all bug

NAME

       getitimer, setitimer - get and set value of interval timer

SYNOPSIS

       #include <sys/time.h>

       int getitimer(int which, struct itimerval *value);
       int setitimer(int which, const struct itimerval *restrict value,
              struct itimerval *restrict ovalue);

DESCRIPTION

       The  getitimer()  function  shall  store the current value of the timer specified by which
       into the structure pointed to by value. The  setitimer()  function  shall  set  the  timer
       specified  by  which  to  the value specified in the structure pointed to by value, and if
       ovalue is not a null pointer, store the previous value  of  the  timer  in  the  structure
       pointed to by ovalue.

       A  timer  value  is  defined  by  the  itimerval  structure, specified in <sys/time.h>. If
       it_value is non-zero, it shall  indicate  the  time  to  the  next  timer  expiration.  If
       it_interval  is  non-zero,  it shall specify a value to be used in reloading it_value when
       the timer expires. Setting it_value to 0 shall disable a timer, regardless of the value of
       it_interval.  Setting  it_interval  to  0  shall disable a timer after its next expiration
       (assuming it_value is non-zero).

       Implementations may place limitations  on  the  granularity  of  timer  values.  For  each
       interval  timer,  if  the  requested  timer  value  requires  a finer granularity than the
       implementation supports, the actual timer value shall be rounded up to the next  supported
       value.

       An  XSI-conforming  implementation  provides  each  process  with  at least three interval
       timers, which are indicated by the which argument:

       ITIMER_REAL
              Decrements in real time. A SIGALRM signal is delivered when this timer expires.

       ITIMER_VIRTUAL
              Decrements in process virtual time. It runs only when the process is  executing.  A
              SIGVTALRM signal is delivered when it expires.

       ITIMER_PROF
              Decrements both in process virtual time and when the system is running on behalf of
              the process. It is designed to be used by interpreters in  statistically  profiling
              the execution of interpreted programs. Each time the ITIMER_PROF timer expires, the
              SIGPROF signal is delivered.

       The  interaction  between  setitimer()  and  any  of  alarm(),  sleep(),  or  usleep()  is
       unspecified.

RETURN VALUE

       Upon successful completion, getitimer() or setitimer() shall return 0; otherwise, -1 shall
       be returned and errno set to indicate the error.

ERRORS

       The setitimer() function shall fail if:

       EINVAL The value argument is not in canonical form. (In  canonical  form,  the  number  of
              microseconds  is a non-negative integer less than 1000000 and the number of seconds
              is a non-negative integer.)

       The getitimer() and setitimer() functions may fail if:

       EINVAL The which argument is not recognized.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       alarm() , sleep() , timer_getoverrun() , ualarm() , usleep() , the Base Definitions volume
       of IEEE Std 1003.1-2001, <signal.h>, <sys/time.h>

COPYRIGHT

       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1, 2003 Edition, Standard for Information Technology  --  Portable  Operating  System
       Interface  (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by
       the Institute of Electrical and Electronics Engineers, Inc and  The  Open  Group.  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.opengroup.org/unix/online.html .