Implementation status: to be implemented
int getitimer(int which, struct itimerval *value);
int setitimer(int which, const struct itimerval *restrict value,
struct itimerval *restrict ovalue);
setitimer() functions get and set value of the interval timer.
which - the timer number.
value - a pointer to the structure saving the timer value.
ovalue - the previous value of the timer.
getitimer() function stores the current value of the timer specified by which into the structure pointed to by value.
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, specified in
<sys/time.h>. It includes the following members:
struct timeval it_interval( timer interval: a value to be used in reloading it_value when the timer expires. )
struct timeval it_value(current value: the time to the next timer expiration)
0 disables a timer, regardless of the value of
0 disables a timer after its next expiration (assuming
it_value is non-zero).
For each interval timer, if the requested timer value requires a finer granularity than the implementation supports, the actual timer value is rounded up to the next supported value.
Each process is provided with three interval timers (defined in
<sys/time.h>), which are indicated by the which argument:
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 programs. Each time the
ITIMER_PROFtimer expires, the
SIGPROFsignal is delivered.
ITIMER_REAL- decrements in real time. A
SIGALRMsignal is delivered when this timer expires.
ITIMER_VIRTUAL- decrements in process virtual time. It runs only when the process is executing. A
SIGVTALRMsignal is delivered when it expires.
Upon successful completion,
0 is returned, otherwise
-1 is returned and
errno set to indicate the error.
setitimer() function fails if:
[EINVAL] The value argument is not in canonical form. (In canonical form, the number of microseconds is a non-negative integer less than
1000000 and the number of seconds is a non-negative integer.)
setitimer() functions fail if:
[EINVAL] The which argument is not recognized.
- Put required definitions of interval timers to the
- Implement the
- Implement the