getitimersetitimer
- get/set value of interval timer
LIBRARY
Lb libc
SYNOPSIS
#include <sys/time.h>
Fd #define ITIMER_REAL0
Fd #define ITIMER_VIRTUAL1
Fd #define ITIMER_PROF2
int
getitimer (int which struct itimerval *value); int
setitimer (int which const struct itimerval *value struct itimerval *ovalue);
DESCRIPTION
The system provides each process with three interval timers,
defined in
In sys/time.h .
The
getitimer ();
system call returns the current value for the timer specified in
Fa which
in the structure at
Fa value .
The
setitimer ();
system call sets a timer to the specified
Fa value
(returning the previous value of the timer if
Fa ovalue
is not a null pointer).
A timer value is defined by the
Fa itimerval
structure:
struct itimerval {
struct timeval it_interval; /* timer interval */
struct timeval it_value; /* current value */
};
If
Fa it_value
is non-zero, it indicates the time to the next timer expiration.
If
Fa it_interval
is non-zero, it specifies a value to be used in reloading
Fa it_value
when the timer expires.
Setting
Fa it_value
to 0 disables a timer, regardless of the value of
Fa it_interval .
Setting
Fa it_interval
to 0 causes a timer to be disabled after its next expiration (assuming
Fa it_value
is non-zero).
Time values smaller than the resolution of the
system clock are rounded up to this resolution
(typically 10 milliseconds).
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.
The
ITIMER_PROF
timer 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_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.
The maximum number of seconds allowed for
Fa it_interval
and
Fa it_value
in
setitimer ();
is 100000000.
NOTES
Three macros for manipulating time values are defined in
In sys/time.h .
The
timerclear ();
macro
sets a time value to zero,
timerisset ();
tests if a time value is non-zero, and
timercmp ();
compares two time values.
RETURN VALUES
Rv -std
ERRORS
The
getitimer ();
and
setitimer ();
system calls
will fail if:
Bq Er EFAULT
The
Fa value
argument specified a bad address.
Bq Er EINVAL
The
Fa value
argument specified a time that was too large
to be handled.