Provided by: manpages-es_1.55-10_all bug

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.