Go to the previous, next section.
int getitimer(int which, struct itimerval *value);
int setitimer(int which, const struct itimerval *value,
struct itimerval *ovalue);
which: [in] the timer to access.
value: (For getitimer) [out] the value of the timer. (For
setitimer) [in] the new value of the timer.
ovalue: [out] the old value of the timer.
Each task posess 3 interval timers:
ITIMER_REAL
SIGALRM upon expiration.
ITIMER_VIRTUAL
SIGVTALRM upon expiration.
ITIMER_PROF
SIGPROF upon expiration.
The structure itimerval has the following structure:
struct itimerval {
struct timeval it_interval; /* timer interval */
struct timeval it_value; /* current value */
};
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* microseconds */
};
getitimer gets those values for a specific timer and
setitimer sets those values for a specific timer (and also
retrieve the old values). If it_value or it_interval is
set to 0 the timer is deactivated. The timers always expire at or after
the requested time. If the requesting process is active at the moment of
expiration a signal is immediately delivered otherwise the delivery may
be delayed.
On success zero is returned. On error -1 is returned and errno is
set to one of the following values:
EINVAL: which has an invalid value.
EFAULT.
Go to the previous, next section.