getitimer(2) 4 BSD getitimer(2)
NAME
getitimer, setitimer - get/set value of interval timer
SYNOPSIS
#include <sys/time.h>
int getitimer (which, value)
int which;
struct itimerval *value;
int setitimer (which, value, ovalue)
int which;
struct itimerval *value, *ovalue;
DESCRIPTION
The system provides each process with three interval timers,
defined in <sys/time.h> as
ITIMER_REAL real time intervals
ITIMER_VIRTUAL virtual time intervals
ITIMER_PROF user and system virtual time
The getitimer call returns the current value for the timer
specified in which, while the 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, whose
members are:
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 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.
The ITIMER_PROF timer decrements both in process virtual
time and when the system is running on behalf of the
Page 1 CX/UX Programmer's Reference Manual
getitimer(2) 4 BSD getitimer(2)
process. It is designed to be used by interpreters in sta-
tistically profiling the execution of interpreted programs.
Each time the ITIMER_PROF timer expires, the SIGPROF signal
is delivered. Because this signal may interrupt in-progress
system calls, programs using this timer must be prepared to
restart interrupted system calls.
NOTES
Three macros for manipulating time values are defined in <
sys/time.h >. Timerclear sets a time value to zero, timer-
isset tests if a time value is non-zero, and timercmp com-
pares two time values (beware that >= and <= do not work
with this macro).
RETURN VALUE
If the calls succeed, a value of 0 is returned. If an error
occurs, the value -1 is returned, and a more precise error
code is placed in the global variable errno.
ERRORS
The possible errors are:
[EFAULT] The value structure specified a bad address.
[EINVAL] A value structure specified a time was too
large to be handled.
SEE ALSO
sigvec(2), gettimeofday(2)
Page 2 CX/UX Programmer's Reference Manual