Provided by:
manpages-nl_20051127-4_all
NAAM
getitimer, setitimer - krijg of zet waarde voor een interval wekker
OVERZICHT
#include <sys/time.h>
int getitimer(int welke, struct itimerval *waarde);
int setitimer(int welke, const struct itimerval *waarde, struct itimer
val *owaarde);
BESCHRIJVING
Het systeem levert elk proces drie interval wekkers, elk aftellend in
een apart tijd-gebied. Wanneer een wekker afloopt wordt een signaal
gezonden naar het proces, en de wekker wordt (eventueel) herstart.
ITIMER_REAL {wekker echt} telt af in echte tijd, en levert SIGALRM
bij aflopen.
ITIMER_VIRTUAL {wekker virtueel} telt alleen af als het proces aan het
uitvoeren is, en levert SIGVTALRM bij aflopen.
ITIMER_PROF {wekker meet} telt en af als het proces loopt, en als
het systeem aan het uitvoeren is ten dienste van het
proces. Samen met ITIMER_VIRTUAL, wordt deze wekker
gewoonlijk gebruikt om de tijd verbruikt door de
toepassing in gebruikersruimte en in kernelruimte te
meten. SIGPROF wordt afgeleverd bij aflopen.
Wekker waardes worden bepaald door de volgende structuren:
struct itimerval {
struct timeval it_interval; /* {interval} volgende waarde */
struct timeval it_value; /* {waarde} huidige waarde */
};
struct timeval {
long tv_sec; /* {seconden} seconden */
long tv_usec; /* {useconden} microseconden */
};
Getitimer(2) vult de structuur aangewezen door waarde met de huidige
stand voor de wekker aangewezen door welke (een van ITIMER_REAL,
ITIMER_VIRTUAL, of ITIMER_PROF). Het onderdeel it_value wordt
geschakeld naar de hoeveelheid tijd die nog rest op de wekker, of nul
als de wekker uitgezet is. Net zo, it_interval wordt geschakeld naar de
herstart waarde. Setitimer(2) schakelt de aangewezen wekker naar de
waarde in waarde. Als owaarde ongelijk-nul is, wordt de oude waarde
van de wekker daar opgeslagen.
Wekkers tellen af van it_value naar nul, veroorzaken een signaal en
herstarten met it_interval. Een wekker die naar nul geschakeld is
(it_value is nul of de wekker loopt af en it_interval is nul) stopt.
Beide, tv_sec en tv_usec zijn belangrijk bij het bepalen van de duur
van een wekker.
Wekkers zullen nooit aflopen vóór het gevraagde tijdstip, in plaats
daarvan aflopend een korte, gelijkblijvende tijd naderhands, afhanke‐
lijk van het scheidend vermogen van de systeem wekker (momenteel 10ms).
Bij aflopen zal een signaal opgewekt worden en de wekker wordt her‐
start. Als de wekker afloopt terwijl het proces bezig is (altijd ’waar’
voor ITIMER_VIRT) dan wordt het signaal onmiddellijk afgeleverd als het
opgewekt wordt. In het andere geval zal de aflevering een korte tijd
verplaatst worden afhankelijk van de lasten op het systeem.
Bij success wordt nul teruggegeven. Bij falen wordt -1 teruggegeven en
wordt errno naar behoren gezet.
FOUTEN
EFAULT {fout} waarde of owaarde zijn geen geldige pointers.
EINVAL {ongeldig} welke is niet een van ITIMER_REAL, ITIMER_VIRT, of
ITIMER_PROF.
SVr4, 4.4BSD (deze aanroep verscheen voor het eerst in 4.2BSD).
gettimeofday(2) {krijg tijd op dag}, sigaction(2) {signaal daad}, sig
nal(2) {signaal}.
BUGS
Onder Linux zijn het opwekken en afleveren van een signaal verschil‐
lend, en voor elk signaal is maar één wachtende gebeurtenis toegestaan.
Het is daarom denkbaar dat onder ziekelijk zware systeemlasten,
ITIMER_REAL af zal lopen voordat het signaal van een eerdere afloping
afgeleverd is. Het tweede signaal zal in dit geval verloren zijn.
VERTALING
Dit is een handleiding uit manpages-dev 1.29. Alles wat tussen
‘{’..‘}’ staat is aanvullende vertaling, en hoort niet bij de originele
handleiding. Email naar <manpages-nl@nl.linux.org>.
$Id: setitimer.2,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $