*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Linux man pages -> getitimer (2)              
Title
Content
Arch
Section
 

GETITIMER(2)

Contents


NAME    [Toc]    [Back]

       getitimer, setitimer - get or set value of an interval timer

SYNOPSIS    [Toc]    [Back]

       #include <sys/time.h>

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

DESCRIPTION    [Toc]    [Back]

       The system provides each  process  with	three  interval  timers,  each
       decrementing in a distinct time domain.	When any timer expires, a signal
 is sent to the process, and the timer (potentially) restarts.

       ITIMER_REAL    decrements in real time, and delivers SIGALRM upon expiration.


       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  profile
  the time spent by the application in user and kernel
 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 */
	    };

       Getitimer(2) 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  to  the
       amount  of  time  remaining  on the timer, or zero if the timer is disabled.
  Similarly, it_interval is set to the reset value.  Setitimer(2)
       sets  the indicated timer to the value in value.  If ovalue is nonzero,
       the old value of the timer is stored there.

       Timers decrement from it_value to zero, generate a signal, and reset to
       it_interval.   A  timer	which  is set 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 determining the duration  of
       a timer.

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

RETURN VALUE    [Toc]    [Back]

       On  success,  zero is returned.	On error, -1 is returned, and errno is
       set appropriately.

ERRORS    [Toc]    [Back]

       EFAULT value or ovalue are not valid pointers.

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

CONFORMING TO    [Toc]    [Back]

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

SEE ALSO    [Toc]    [Back]

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

BUGS    [Toc]    [Back]

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



Linux 0.99.11			  1993-08-05			  GETITIMER(2)
[ Back ]
 Similar pages
Name OS Title
timersub OpenBSD get/set value of interval timer
timerisset OpenBSD get/set value of interval timer
setitimer NetBSD get/set value of interval timer
getitimer IRIX get/set value of interval timer
setitimer HP-UX get and set value of interval timer
getitimer NetBSD get/set value of interval timer
timercmp OpenBSD get/set value of interval timer
ualarm HP-UX set the interval timer
timerclear OpenBSD get/set value of interval timer
timeradd OpenBSD get/set value of interval timer
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service