GETITIMER(2) UNIX Programmer's Manual GETITIMER(2) NAME getitimer, setitimer - get/set value of interval timer SYNOPSIS #include <sys/time.h> #define ITIMER_REAL 0 /* real time intervals */ #define ITIMER_VIRTUAL 1 /* virtual time intervals */ #define ITIMER_PROF 2 /* user and system virtual time */ getitimer(which, value) int which; struct itimerval *value; 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>. The getitimer call returns the current value for the timer specified in which in the struc- ture at value. The setitimer call sets a timer to the specified value (returning the previous value of the timer if ovalue is nonzero). 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 (on the VAX, 10 mil- liseconds). 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. Printed 11/26/99 August 26, 1985 1 GETITIMER(2) UNIX Programmer's Manual GETITIMER(2) The ITIMER_PROF timer decrements both in process virtual time and when the system is running on behalf of the pro- cess. It is designed to be used by interpreters in statist- ically 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). NOTES (PDP-11) On the PDP-11, setitimer rounds timer values up to seconds resolution. (This saves some space and computation in the overburdened PDP-11 kernel.) 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 parameter specified a bad address. [EINVAL] A value parameter specified a time was too large to be handled. SEE ALSO sigvec(2), gettimeofday(2) Printed 11/26/99 August 26, 1985 2