Seth Woolley's Man Viewer

getitimer(2) - getitimer, setitimer, getitimer, setitimer - get or set value of an interval timer - man 2 getitimer

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

GETITIMER(2)               Linux Programmer's Manual              GETITIMER(2)

       getitimer, setitimer - get or set(7,n,1 builtins) value of an interval timer

       #include <sys/time.h>

       int getitimer(int which, struct itimerval *value);
       int  setitimer(int which, const struct itimerval *value, struct itimer-
              val *ovalue);

       The system provides each  process  with  three  interval  timers,  each
       decrementing in(1,8) a distinct time(1,2,n) domain.  When any timer expires, a sig-
       nal(2,7) is sent to the process, and the timer (potentially) restarts.

       ITIMER_REAL    decrements in(1,8) real time(1,2,n), and delivers SIGALRM upon expi-

       ITIMER_VIRTUAL decrements  only  when  the  process  is  executing, and
                      delivers SIGVTALRM upon expiration.

       ITIMER_PROF    decrements both when the process executes and  when  the
                      system  is  executing on behalf of the process.  Coupled
                      with ITIMER_VIRTUAL, this timer is usually used to  pro-
                      file(1,n)  the time(1,2,n) spent by the application in(1,8) user and ker-
                      nel space.  SIGPROF is delivered upon expiration.

       Timer values are defined by the following structures:
            struct itimerval {
                struct timeval it_interval; /* next value */
                struct timeval it_value;    /* current value */
            struct timeval {
                long tv_sec;                /* seconds */
                long tv_usec;               /* microseconds */

       The function getitimer fills the structure indicated by value with  the
       current  setting  for the timer indicated by which (one of ITIMER_REAL,
       ITIMER_VIRTUAL, or ITIMER_PROF).  The element it_value is  set(7,n,1 builtins)  to  the
       amount  of  time(1,2,n)  remaining  on the timer, or zero if(3,n) the timer is dis-
       abled.  Similarly, it_interval is set(7,n,1 builtins) to the reset(1,7,1 tput) value.  The function
       setitimer sets the indicated timer to the value in(1,8) value.  If ovalue is
       nonzero, the old value of the timer is stored there.

       Timers decrement from it_value to zero, generate a signal(2,7), and reset(1,7,1 tput) to
       it_interval.   A  timer  which  is set(7,n,1 builtins) to zero (it_value is zero or the
       timer expires and it_interval is zero) stops.

       Both tv_sec and tv_usec are significant in(1,8) determining the duration  of
       a timer.

       Timers  will  never  expire before the requested time(1,2,n), instead expiring
       some short, constant time(1,2,n) afterwards, dependent  on  the  system  timer
       resolution  (currently 10ms).  Upon expiration, a signal(2,7) will be gener-
       ated and the timer reset.  If the timer expires while  the  process  is
       active (always true for ITIMER_VIRT) the signal(2,7) will be delivered imme-
       diately when generated.  Otherwise the delivery will  be  offset  by  a
       small time(1,2,n) dependent on the system loading.

       On  success,  zero is returned.  On error(8,n), -1 is returned, and errno is
       set(7,n,1 builtins) appropriately.

       EFAULT value or ovalue are not valid pointers.

       EINVAL which is not one of ITIMER_REAL, ITIMER_VIRT, or ITIMER_PROF.

       SVr4, 4.4BSD (This call first appeared in(1,8) 4.2BSD).

       gettimeofday(2), sigaction(2), signal(2,7)(2)

       Under Linux, the generation and delivery of a signal(2,7) are distinct,  and
       there each signal(2,7) is permitted only one outstanding event.  It's there-
       fore conceivable that under pathologically heavy  loading,  ITIMER_REAL
       will  expire  before  the  signal(2,7)  from  a previous expiration has been
       delivered.  The second signal(2,7) in(1,8) such an event will be lost.

Linux 0.99.11                     1993-08-05                      GETITIMER(2)

References for this manual (incoming links)