HPUX getitimer[2]

getitimer(2) getitimer(2)
NAME
getitimer, setitimer - get/set value of interval timer
SYNOPSIS
#include <time.h>
int getitimer(int which, struct itimerval *value);
int setitimer(
int which,
const struct itimerval *value,
struct itimerval *ovalue
);
DESCRIPTION
The system provides each process with three interval timers, defined
in <time.h>. getitimer() returns the current value for the timer
specified in which, whereas setitimer() call sets the value of a timer
(optionally returning the previous value of the timer).
A timer value is defined by the itimerval structure:
struct itimerval {
struct timeval it_interval; /* timer interval */
struct timeval it_value; /* current value */
};
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. Setting it_interval to 0 causes a timer to be
disabled after its next expiration (assuming it_value is non-zero).
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).
The which parameter specifies which timer to use. The possible values
are ITIMER_REAL, ITIMER_VIRTUAL, and ITIMER_PROF.
The ITIMER_REAL timer decrements in real time. A SIGALRM signal is
delivered when this timer expires.
The ITIMER_VIRTUAL timer decrements in process virtual time. It runs
only when the process is executing. A SIGVTALRM signal is delivered
when it expires.
Hewlett-Packard Company - 1 - HP-UX Release 9.0: August 1992
getitimer(2) getitimer(2)
The ITIMER_PROF timer 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. 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 <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.
RETURN VALUE
If the calls succeed, a value of 0 is returned. If an error occurs,
-1 is returned, and errno is set to indicate the error.
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 implementation
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;
Hewlett-Packard Company - 2 - HP-UX Release 9.0: August 1992
getitimer(2) getitimer(2)
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).
Hewlett-Packard Company - 3 - HP-UX Release 9.0: August 1992