Provided by:
manpages-es_1.55-10_all 
NOMBRE
getitimer, setitimer - obtiene/asigna el valor de un temporizador
SINOPSIS
#include <sys/time.h>
int getitimer(int which, struct itimerval *value);
int setitimer(int which, const struct itimerval *value, struct
itimerval *ovalue);
DESCRIPCI'ON
El sistema proporciona a cada proceso 3 temporizadores, los cuales se
decrementan en distintas escalas de tiempo. Cuando ha pasado el
intervalo de tiempo definido en el temporizador, se envia una senal al
proceso, y el temporizador (potencialmente) vuelve a empezar.
ITIMER_REAL se decrementa en tiempo real, y envia SIGALRM al
expirar.
ITIMER_VIRTUAL se decrementa solo cuando el proceso esta ejecutandose,
y envia SIGVTALRM al expirar.
ITIMER_PROF se decrementa tanto cuando el proceso esta ejecutandose
como cuando el sistema esta trabajando en nombre del
proceso.
Asociado con ITIMER_VIRTUAL, este temporizador suele
usarse para analizar el tiempo consumido por la
aplicacion en el espacio de usuario y en espacio del
nucleo SIGPROF es enviado al expirar.
Los valores del temporizador estan definidos en los siguientes tipos de
datos:
struct itimerval {
struct timeval it_interval; /* valor proximo */
struct timeval it_value; /* valor actual */
};
struct timeval {
long tv_sec; /* segundos */
long tv_usec; /* microsegundos */
};
La funcion getitimer rellena la estructura indicada por value con el
valor actual para el temporizador especificado por which (uno de estos:
ITIMER_REAL, ITIMER_VIRTUAL, o ITIMER_PROF). El elemento it_value es
inicializado a la cantidad de tiempo que le falta al temporizador, o
cero si el temporizador esta deshabilitado. De forma similar,
it_interval es iniciazliado a un valor por defecto. La funcion
setitimer inicializa el temporizador especificado al valor en value.
Si ovalue no es cero, el antiguo valor del temporizador es almacenado
alli.
Los temporizadore se decrementan desde it_value a cero, generan una
senal, y se inicializan a it_interval. Un temporizador al que se le
asigna el valor cero (it_value es cero o el temporizador expira y
it_interval es cero) finaliza.
tv_sec y tv_usec son significativos en la determinacion de la duracion
del temporizador.
Los temporizadores nunca expiran antes del tiempo especificado, lo
hacen un tiempo constante poco despues, dependiente de la resolucion
del temporizador del sistema (actualmente 10ms). En el momento de la
expiracion, una senal sera generada y el temporizador sera
inicializado. Si el temporizador expira mientras el proceso esta
activo (siempre cierto para ITIMER_VIRT) la senal sera enviada
inmediatamente al generarse. De otra modo el envio sera aplazado hasta
un tiempo despues dependiente de la carga de trabajo del sistema.
VALOR DEVUELTO
En caso de exito, devuelve 0. En caso de error, devuelve , -1 y errno
es asignada apropiadamente.
ERRORES
EFAULT value o ovalue no son punteros validos.
EINVAL which no es uno de ITIMER_REAL, ITIMER_VIRT, o ITIMER_PROF.
CONFORME A
SVr4, 4.4BSD (Esta llamada al sistema aparecio por primera vez en
4.2BSD).
V'EASE TAMBI'EN
gettimeofday(2), sigaction(2), signal(2)
FALLOS
En Linux, la generacion y envio de una senal son acciones distintas, y
para cada senal solo se permite un evento. Es, por lo tanto, posible
que en condiciones extremas de sobrecarga, ITIMER_REAL expire antes de
que la senal de una anterior expiracion haya sido enviada. La segunda
senal, en esta situacion, sera perdida.