| GETITIMER(2) | System Calls Manual | GETITIMER(2) |
getitimer,
setitimer — get/set value of
interval timer
Standard C Library (libc, -lc)
#include
<sys/time.h>
int
getitimer(int
which, struct itimerval
*value);
int
setitimer(int
which, const struct
itimerval * restrict value,
struct itimerval * restrict
ovalue);
The system provides each process with multiple interval timers,
defined in ⟨sys/time.h⟩. The
getitimer()
call returns the current value for the timer specified in
which in the structure at value.
The setitimer() call sets a timer to the specified
value, returning the previous value of the timer if
ovalue is not NULL.
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).
The which parameter specifies the type of the timer:
ITIMER_REALSIGALRM signal is delivered when this timer
expires.ITIMER_VIRTUALSIGVTALRM signal is delivered when it
expires.ITIMER_PROFITIMER_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.ITIMER_MONOTONICSIGALRM signal is delivered when this timer
expires.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.
Both functions may fail if:
gettimeofday(2), select(2), sigaction(2), itimerval(3), timeradd(3)
The functions conform to IEEE Std 1003.1-2001 (“POSIX.1”). The later IEEE Std 1003.1-2008 (“POSIX.1”) revision however marked both as obsolescent, recommending the use of timer_gettime(2) and timer_settime(2) instead.
The getitimer() function call appeared in
4.2BSD. The ITIMER_MONOTONIC
functionality appeared in NetBSD 6.0.
| April 28, 2019 | NetBSD 11.0 |