HP-UX Reference (11i v1 00/12) - 2 System Calls (vol 5)

__________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________
STANDARD Printed by: Nora Chuang [nchuang] STANDARD
/build/1111/BRICK/man2/!!!intro.2
________________________________________________________________
___ ___
g
getitimer(2) getitimer(2)
HP-UX EXTENSIONS
DESCRIPTION
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 inter-
rupt 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 >= and <= 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.
ERRORS
getitimer() or setitimer() fail if any of the following conditions are encountered:
[EFAULT] The value structure specified a bad address. Reliable detection of this error is imple-
mentation dependent.
[EINVAL] A value structure specified a microsecond value less that zero or greater than or equal
to one million.
[EINVAL] which does not specify one of the three possible timers.
EXAMPLES
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, &rttimer, &old_rttimer);
AUTHOR
getitimer() was developed by the University of California, Berkeley.
SEE ALSO
alarm(2), exec(2), gettimeofday(2), signal(5).
HP-UX Release 11i: December 2000 1 Section 293
___
___