Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Apropos / Subsearch:
optional field

 getitimer(2)							getitimer(2)

      getitimer, setitimer - get/set value of interval timer

      #include <&lt&lt&lt;sys/time.h>&gt&gt&gt;

      int getitimer(int which, struct itimerval *value);

      int setitimer(
	   int which,
	   const struct itimerval *value,
	   struct itimerval *ovalue

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

      A timer value is defined by the itimerval structure.  If it_value is
      non-zero, it indicates the time to the next timer expiration.  If
      it_interval is non-zero, it specifies a value to be used in reloading
      it_value when the timer expires.	Setting it_value to 0 disables a
      timer, regardless of the value of it_interval.  Setting it_interval to
      0 disables a timer after its next expiration (assuming it_value is

      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 will be rounded up to the next supported value.

      Implementations may place limitations on the timer value.	 To make
      sure that a process gets at least as much time as requested, the timer
      value is rounded up to the next timer tick (a timer tick is the
      smallest supported value).  The timer value is rounded up to the next
      timer tick because, the timer will be initialize somewhere between
      timer ticks.  If a setitimer() is followed by a getitimer() without a
      timer tick in between, it is possible that the value returned by
      getitimer() may be more than the initial value requested by
      setitimer() due to this rounding.

      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

 Hewlett-Packard Company	    - 1 -   HP-UX Release 11i: November 2000

 getitimer(2)							getitimer(2)

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

	   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

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

      Upon successful completion, getitimer() or setitimer() returns 0.
      Otherwise, -1 is returned and errno is set to indicate the error.

      The setitimer() function will 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 1,000,000 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.

      alarm(2), sleep(3C), ualarm(2), usleep(2), <signal.h>, <sys/time.h>.

      First released in Issue 4, Version 2.

				    - 2 -	  Formatted:  August 2, 2006

 getitimer(2)							getitimer(2)


      A timer value is defined by the itimerval structure:

	   struct itimerval {
	      struct timeval   it_interval;    /* timer interval */
	      struct timeval   it_value;       /* current value */

      Time values smaller than the resolution of the system clock are
      rounded up to this resolution.  The machine-dependent clock resolution
      is 1/HZ seconds, where the constant HZ is defined in <sys/param.h>.
      Time values larger than an implementation-specific maximum value are
      rounded down to this maximum.  The maximum values for the three
      interval timers are specified by the constants MAX_ALARM, MAX_VTALARM,
      and MAX_PROF defined in <sys/param.h>.  On all implementations, these
      values are guaranteed to be at least 31 days (in seconds).

      Each time the ITIMER_PROF timer expires, the SIGPROF signal is
      delivered.  Since this signal can interrupt in-progress system calls,
      programs using this timer must be prepared to restart interrupted
      system calls.

      Interval timers are not inherited by a child process across a fork(),
      but are inherited across an exec().

      Three macros for manipulating time values are defined in <sys/time.h>:

	   timerclear	     Set a time value to zero.

	   timerisset	     Test if a time value is non-zero.

	   timercmp	     Compare two time values.  (Beware that >&gt&gt&gt;= and
			     <&lt&lt&lt;= do not work with the timercmp macro.)

      The timer used with ITIMER_REAL is also used by alarm() (see
      alarm(2)).  Thus successive calls to alarm(), getitimer(), and
      setitimer() set and return the state of a single timer.  In addition,
      a call to alarm() sets the timer interval to zero.

      getitimer() or setitimer() fail if any of the following conditions are

	   [EFAULT]	  The value structure specified a bad address.
			  Reliable detection of this error is implementation

 Hewlett-Packard Company	    - 1 -   HP-UX Release 11i: November 2000

 getitimer(2)							getitimer(2)

	   [EINVAL]	  A value structure specified a microsecond value
			  less that zero or greater than or equal to one

	   [EINVAL]	  which does not specify one of the three possible

      The following call to setitimer() sets the real-time interval timer to
      expire initially after 10 seconds and every 0.5 seconds thereafter:

	   struct itimerval rttimer;
	   struct itimerval old_rttimer;

	   rttimer.it_value.tv_sec     = 10;
	   rttimer.it_value.tv_usec    = 0;
	   rttimer.it_interval.tv_sec  = 0;
	   rttimer.it_interval.tv_usec = 500000;

	   setitimer (ITIMER_REAL, &&amp&amp&amp;rttimer, &&amp&amp&amp;old_rttimer);

      getitimer() was developed by the University of California, Berkeley.

      alarm(2), exec(2), gettimeofday(2), signal(5).

 Hewlett-Packard Company	    - 2 -   HP-UX Release 11i: November 2000