GETITIMER(2)       Manuel du programmeur Linux       GETITIMER(2)


NOM
       getitimer,  setitimer - Lire / écrire la valeur d'une tem­
       porisation.

SYNOPSIS
       #include <sys/time.h>

       int getitimer(int which, struct itimerval *value);
       int setitimer(int which, const  struct  itimerval  *value,
              struct itimerval *ovalue);

DESCRIPTION
       Le  système fournit pour chaque processus trois temporisa­
       tions,  chacune  avec   un   fonctionnement   particulier.
       Lorsqu'une  temporisation  expire, un signal est envoyé au
       processus et la temporisation redémarre éventuellement.

       ITIMER_REAL    décroît en temps réel et un signal  SIGALRM
                      est émis à l'expiration du délai.

       ITIMER_VIRTUAL décroît   uniquement   quand  le  processus
                      s'exécute, et un signal SIGVTALRM est  émis
                      à l'expiration du délai.

       ITIMER_PROF    décroît   à  la  fois  quand  le  processus
                      s'exécute, et quand le  processeur  exécute
                      des fonctions systèmes à la demande du pro­
                      cessus.  Ce  timer,  utilisé  conjointement
                      avec   ITIMER_VIRTUAL,   est   généralement
                      utilisé pour obtenir le profil  d'exécution
                      du   processus  entre  les  fonctionnalités
                      utilisateur et le noyau.  SIGPROF est  émis
                      à l'expiration du délai.

       Les  valeurs  des  temporisations  sont  définies avec les
       structures suivantes :

            struct itimerval {
              struct timeval it_interval; /* valeur suivante */
              struct timeval it_value;    /* valeur actuelle */
            };

            struct timeval {
              long tv_sec;                /* secondes        */
              long tv_usec;               /* micro secondes  */
            };

       Getitimer(2) renseigne la structure pointée par value avec
       le   paramétrage   de   la   temporisation   which  (parmi
       ITIMER_REAL, ITIMER_VIRTUAL, ou  ITIMER_PROF).   L'élément
       it_value est rempli avec le délai restant dans la tempori­
       sation, ou zéro si la  temporisation  est  désactivée.  De
       même  it_interval  sera rempli avec la valeur originale de
       la temporisation.



Linux                      8 Avril 1997                         1





GETITIMER(2)       Manuel du programmeur Linux       GETITIMER(2)


       Setitimer(2) positionne la temporisation avec les  valeurs
       de  value.   Si  ovalue  est  non  nulle,  les  paramètres
       précédents de la temporisation y sont inscrits.

       Les  temporisations  décroissent  de  it_value   à   zéro,
       déclenchent  un  signal,  et sont replacées à it_interval.
       Une  temporisation  s'arrête  si  elle  est  mise  à  zero
       (it_value  vaut  zéro)  ou bien elle expire et it_interval
       vaut zéro.

       Les deux champs  tv_sec  et  tv_usec  sont  utilisés  pour
       déterminer la durée d'une temporisation.

       Les temporisations n'expirent jamais avant la fin du temps
       requis, et expirent plutôt avec un délai court et constant
       après la limite. Ce délai dépend de la résolution du timer
       système (actuellement 10 ms).  A  l'expiration  un  signal
       est  déclenché puis la temporisation réinitialisée.  Si la
       temporisation expire alors  que  le  processus  est  actif
       (toujours  vrai  avec  ITIMER_VIRT) le signal sera délivré
       immédiatement. Autrement il y aura un  petit  délai  avant
       réception du signal, dépendant de la charge du système.


VALEUR RENVOYEÉ
       getitimer  et  setitimer renvoient 0 s'ils réussissent, ou
       -1 s'ils échouent,  auquel  cas  errno  contient  le  code
       d'erreur.

ERREURS
       EFAULT         value  ou  ovalue  pointent  en  dehors  de
                      l'espace d'adressage accessible.

       EINVAL         which n'est pas dans la liste  ITIMER_REAL,
                      ITIMER_VIRT, ou ITIMER_PROF.

CONFORMITÉ
       SVr4, 4.4BSD (Cet appel est apparu dans 4.2BSD).

VOIR AUSSI
       gettimeofday(2), sigaction(2), signal(2).

BUGS
       Sous  Linux,  l'émission  et la réception d'un signal sont
       distincts, et un même signal ne peut pas  être  émis  deux
       fois  de  suite  si  le  premier n'a pas été reçu.  Il est
       ainsi possible qu'avec une charge système très élevée, une
       temporisation ITIMER_REAL expire avant que le signal d'une
       expiration précédente n'ait été reçu.   Le  second  signal
       sera alors perdu.


TRADUCTION
       Christophe Blaess, 1997.



Linux                      8 Avril 1997                         2