1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
.\" Copyright 7/93 by Darren Senn (sinster@scintilla.santa-clara.ca.us)
.\" Based on a similar page Copyright 1992 by Rick Faith
.\" May be freely distributed
.\"
.\" Traduction 11/10/1996 Christophe BLAESS (ccb@club-internet.fr)
.\" Mise a jour 8/04/97
.TH GETITIMER 2 "8 Avril 1997" "Linux" "Manuel du programmeur Linux"
.SH NOM
getitimer, setitimer \- Lire / ecrire la valeur d'une temporisation.
.SH SYNOPSIS
.PD 0
.HP
.B #include <sys/time.h>
.sp
.HP
.B int getitimer(int
.IB which ,
.B struct itimerval
.BI * value );
.HP
.B int setitimer(int
.IB which ,
.B const struct itimerval
.BI * value ,
.B struct itimerval
.BI * ovalue );
.PD
.SH DESCRIPTION
Le systeme fournit pour chaque processus trois temporisations, chacune avec
un fonctionnement particulier.
Lorsqu'une temporisation expire, un signal est envoye au processus
et la temporisation redemarre eventuellement.
.TP 1.5i
.B ITIMER_REAL
decroit en temps reel et un signal
.B SIGALRM
est emis a l'expiration du delai.
.TP
.B ITIMER_VIRTUAL
decroit uniquement quand le processus s'execute, et un signal
.B SIGVTALRM
est emis a l'expiration du delai.
.TP
.B ITIMER_PROF
decroit a la fois quand le processus s'execute, et quand le processeur
execute des fonctions systemes a la demande du processus.
Ce timer, utilise conjointement avec
.BR ITIMER_VIRTUAL,
est generalement utilise pour obtenir le profil d'execution du processus
entre les fonctionnalites utilisateur et le noyau.
.B SIGPROF
est emis a l'expiration du delai.
.LP
Les valeurs des temporisations sont definies avec les structures suivantes :
.PD 0
.RS .5i
.nf
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 */
};
.fi
.RE
.PD
.LP
.BR Getitimer (2)
renseigne la structure pointee par
.I value
avec le parametrage de la temporisation
.I which
(parmi
.BR ITIMER_REAL ,
.BR ITIMER_VIRTUAL ,
ou
.BR ITIMER_PROF ).
L'element
.B it_value
est rempli avec le delai restant dans la temporisation, ou zero si la
temporisation est desactivee. De meme
.B it_interval
sera rempli avec la valeur originale de la temporisation.
.BR Setitimer (2)
positionne la temporisation avec les valeurs de
.IR value .
Si
.I ovalue
est non nulle, les parametres precedents de la temporisation y sont
inscrits.
.LP
Les temporisations decroissent de
.I it_value
a zero, declenchent un signal, et sont replacees a
.IR it_interval .
Une temporisation s'arrete si elle est mise a zero
.RI (it_value
vaut zero) ou bien elle expire et
.I it_interval
vaut zero.
.LP
Les deux champs
.I tv_sec
et
.I tv_usec
sont utilises pour determiner la duree d'une temporisation.
.LP
Les temporisations n'expirent jamais avant la fin du temps
requis, et expirent plutot avec un delai court et constant
apres la limite. Ce delai depend de la resolution du timer
systeme (actuellement 10 ms).
A l'expiration un signal est declenche puis la temporisation
reinitialisee.
Si la temporisation expire alors que le processus est actif
(toujours vrai avec
.BR ITIMER_VIRT)
le signal sera delivre immediatement. Autrement il y aura
un petit delai avant reception du signal, dependant de la
charge du systeme.
.LP
.SH "VALEUR RENVOYEE"
.BR getitimer " et " setitimer
renvoient 0 s'ils reussissent, ou \-1 s'ils echouent, auquel cas
.I errno
contient le code d'erreur.
.SH ERREURS
.TP 1.5i
.B EFAULT
.I value
ou
.I ovalue
pointent en dehors de l'espace d'adressage accessible.
.TP
.B EINVAL
.I which
n'est pas dans la liste
.BR ITIMER_REAL ,
.BR ITIMER_VIRT ,
ou
.BR ITIMER_PROF .
.SH CONFORMITE
SVr4, 4.4BSD (Cet appel est apparue dans 4.2BSD).
.SH "VOIR AUSSI"
.BR gettimeofday (2),
.BR sigaction (2),
.BR signal (2).
.SH BUGS
Sous Linux, l'emission et la reception d'un signal sont distincts, et
un meme signal ne peut pas etre emis deux fois de suite si le premier
n'a pas ete recu.
Il est aussi possible qu'avec une charge systeme tres elevee,
une temporisation
.B ITIMER_REAL
expire avant que le signal d'une expiration precedente n'ait ete recu.
Le second signal sera alors perdu.
|