Differences between version 6 and predecessor to the previous major change of getitimer(2).
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 6 | Last edited on Monday, December 30, 2002 4:19:09 am | by PerryLorier | Revert |
Older page: | version 4 | Last edited on Tuesday, June 4, 2002 12:23:41 am | by perry | Revert |
@@ -1,147 +1,51 @@
-GETITIMER
-!!!GETITIMER
-NAME
-SYNOPSIS
-DESCRIPTION
-RETURN VALUE
-ERRORS
-CONFORMING TO
-SEE ALSO
-BUGS
-----
!!NAME
-
-
-
getitimer, setitimer
- get or set
value of an interval timer
+getitimer - get value of an interval timer
!!SYNOPSIS
+ __#include <sys/time.h>__
+ __int getitimer(int__ ''which''__, struct itimerval *__''value''__);__
-
-__#include __
-
-
-__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, each decrementing in a distinct time domain. When any timer expires, a signal is sent to the process, and the timer (potentially) restarts.
+;__ITIMER_REAL__: decrements in real time, and delivers [SIGALRM] upon expiration.
+;__ITIMER_VIRTUAL__: decrements only when the process is executing, and delivers [SIGVTALRM] upon expiration.
+;__ITIMER_PROF__: decrements both when the process executes and when the system is executing on behalf of the process. Coupled with
+[ITIMER_VIRTUAL], this timer is usually used to profile the time spent by the application in user and kernel space.
+[SIGPROF] is delivered upon expiration.
+Timer values are defined by the following structures:
-The system provides each process with three interval timers,
-each decrementing in a distinct time domain. When any timer
-expires, a signal is sent to the process, and the timer
-(potentially) restarts.
+ struct itimerval {
+ struct timeval it_interval; /* next value */
+ struct timeval it_value; /* current value */
+ };
+ struct timeval {
+ long tv_sec; /* seconds */
+ long tv_usec; /* microseconds */
+ };
-__ITIMER_REAL__
+getitimer(2) fills the structure indicated by ''value'' with the current setting for the timer indicated by ''which'' (one of __ITIMER_REAL__, __ITIMER_VIRTUAL__, or __ITIMER_PROF__). The element __it_value__ is set to the amount of time remaining on
+the timer, or zero if the timer is disabled. Similarly, __it_interval__ is set to the reset value. Setitimer(2) sets the indicated timer to the value in ''value''. If ''ovalue'' is nonzero, the old value of the timer is stored there.
-decrements in real time
, and delivers
__SIGALRM_
_ upon
-expiration
.
+Timers decrement from ''it_value'' to zero, generate a signal
, and reset to ''it
_interval''. A timer which is set to zero (''it
_value'' is zero or the timer expires and ''it
_interval'' is zero) stops
.
+Both ''tv_sec'' and ''tv_usec'' are significant in determining the duration of a timer.
-__ITIMER_VIRTUAL
__
+Timers will never expire before the requested time, instead expiring some short, constant time afterwards, dependent on the system timer resolution (currently 10ms). Upon expiration, a signal will be generated and the timer reset. If the timer expires while the process is active (always true for
__ITIMER_VIRT
__) the signal will be delivered immediately when generated. Otherwise the delivery will be
+offset by a small time dependent on the system loading.
-
-decrements only when the process is executing, and delivers
-__SIGVTALRM__ upon expiration.
-
-
-__ITIMER_PROF__
-
-
-decrements both when the process executes and when the
-system is executing on behalf of the process. Coupled with
-__ITIMER_VIRTUAL__, this timer is usually used to profile
-the time spent by the application in user and kernel space.
-__SIGPROF__ is delivered upon expiration.
-
-
-Timer values are defined by the following
-structures:
-
-
-struct itimerval {
-struct timeval it_interval; /* next value */
-struct timeval it_value; /* current value */
-};
-struct timeval {
-long tv_sec; /* seconds */
-long tv_usec; /* microseconds */
-};
-
-
-Getitimer(2) fills the structure indicated by
-''value'' with the current setting for the timer
-indicated by ''which'' (one of __ITIMER_REAL__,
-__ITIMER_VIRTUAL__, or __ITIMER_PROF__). The element
-__it_value__ is set to the amount of time remaining on
-the timer, or zero if the timer is disabled. Similarly,
-__it_interval__ is set to the reset value.
-Setitimer(2) sets the indicated timer to the value in
-''value''. If ''ovalue'' is nonzero, the old value of
-the timer is stored there.
-
-
-Timers decrement from ''it_value'' to zero, generate a
-signal, and reset to ''it_interval''. A timer which is
-set to zero (''it_value'' is zero or the timer expires
-and ''it_interval'' is zero) stops.
-
-
-Both ''tv_sec'' and ''tv_usec'' are significant in
-determining the duration of a timer.
-
-
-Timers will never expire before the requested time, instead
-expiring some short, constant time afterwards, dependent on
-the system timer resolution (currently 10ms). Upon
-expiration, a signal will be generated and the timer reset.
-If the timer expires while the process is active (always
-true for __ITIMER_VIRT__) the signal will be delivered
-immediately when generated. Otherwise the delivery will be
-offset by a small time dependent on the system
-loading.
!!RETURN VALUE
-
-
-
On success, zero is returned. On error, -1 is returned, and
-
''errno'' is set appropriately.
+On success, zero is returned. On error, -1 is returned, and ''errno'' is set appropriately.
!!ERRORS
+;[EFAULT]: ''value'' or ''ovalue'' are not valid pointers.
+;[EINVAL]: ''which'' is not one of __ITIMER_REAL__, __ITIMER_VIRT__, or __ITIMER_PROF__.
-
-__EFAULT__
-
-
-''value'' or ''ovalue'' are not valid
-pointers.
-
-
-__EINVAL__
-
-
-''which'' is not one of __ITIMER_REAL__,
-__ITIMER_VIRT__, or __ITIMER_PROF__.
!!CONFORMING TO
+SVr4, 4.4BSD (This call first appeared in 4.2BSD).
+!!BUGS
+Under Linux, the generation and delivery of a signal are distinct, and there each signal is permitted only one outstanding event. It's therefore conceivable that under pathologically heavy loading, __ITIMER_REAL__ will expire before the signal from a previous expiration has been delivered. The second signal in such an event will be lost.
-SVr4, 4.4BSD (This call first appeared in
-4.2BSD).
!!SEE ALSO
-
-
-
gettimeofday(2), sigaction(2),
-
signal(2)
-!!BUGS
-
-
-Under Linux, the generation and delivery of a signal are
-distinct, and there each signal is permitted only one
-outstanding event. It's therefore conceivable that under
-pathologically heavy loading, __ITIMER_REAL__ will expire
-before the signal from a previous expiration has been
-delivered. The second signal in such an event will be
-lost.
-----
+gettimeofday(2), sigaction(2), signal(2)