Man Linux: Main Page and Category List

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 .