getitimer() — Get value of an interval timer
Standards
Standards / Extensions | C or C++ | Dependencies |
---|---|---|
XPG4.2 |
both |
Format
#define _XOPEN_SOURCE_EXTENDED 1
#include <sys/time.h>
int getitimer(int which, struct itimerval *value);
General description
getitimer() gets the current value of an (previously set) interval timer. An interval timer is a timer which sends a signal after each repetition (interval) of time.
The which argument indicates
what kind of time is being controlled. Values for which are:
- ITIMER_REAL
- This timer
is marking real (clock) time. A SIGALRM signal is generated after
each interval of time. Note: alarm() also sets the real interval timer.
- ITIMER_VIRTUAL
- This timer is marking process virtual time. Process virtual time is the amount of time spent while executing in the process, and can be thought of as a CPU timer. A SIGVTALRM signal is generated after each interval of time.
- ITIMER_PROF
- This timer is marking process virtual time plus time spent while the system is running on behalf of the process. A SIGPROF signal is generated after each interval of time.
Note: In a multithreaded environment, each of the
above timers is specific to a thread of execution for both the generation
of the time interval and the measurement of time. For example, an
ITIMER_VIRTUAL timer will mark execution time for just the thread,
not the entire process.
The value argument
is a pointer to a structure containing:
- it_interval
- timer interval
- it_value
- current timer value (time remaining)
- tv_sec
- seconds since January 1, 1970 (UTC)
- tv_usec
- microseconds
Returned value
If successful, getitimer() returns 0, and value points to the itimerval structure.
If unsuccessful, getitimer() returns -1 and sets
errno to one of the following values:
- Error Code
- Description
- EINVAL
- which is not a valid timer type.