.\" -*- coding: UTF-8 -*- .\" Copyright 7/93 by Darren Senn .\" and Copyright (C) 2016, Michael Kerrisk .\" Based on a similar page Copyright 1992 by Rick Faith .\" .\" %%%LICENSE_START(FREELY_REDISTRIBUTABLE) .\" May be freely distributed and modified .\" %%%LICENSE_END .\" .\" Modified Tue Oct 22 00:22:35 EDT 1996 by Eric S. Raymond .\" 2005-04-06 mtk, Matthias Lang .\" Noted MAX_SEC_IN_JIFFIES ceiling .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getitimer 2 "3 mei 2023" "Linux man\-pagina's 6.05.01" .SH NAAM getitimer, setitimer \- krijg of zet waarde voor een interval wekker .SH BIBLIOTHEEK Standard C bibliotheek (\fIlibc\fP, \fI\-lc\fP) .SH SAMENVATTING .nf \fB#include \fP .PP \fBint getitimer(int \fP\fIwelke\fP\fB, struct itimerval *\fP\fIhuidige_waarde\fP\fB);\fP \fBint setitimer(int \fP\fIwelke\fP\fB, const struct itimerval *\fP\fInieuwe_waarde\fP\fB,\fP \fB struct itimerval *_NULL_baar\fP\fIoude_waarde\fP\fB);\fP .fi .SH BESCHRIJVING Deze systeem aanroepen geven toegang tot de interval timers, dit zijn, timers die aflopen op een punt in de toekomst, en (optioneel) op regelmatige intervallen nadien. Als een timer afloopt, dan wordt een signaal gegenereerd voor het aanroepende proces, en wordt de timer gereset naar het opgeven interval (als dit interval niet nul was). .PP Drie typen van timers\[em]gespecificeerd door middel van het \fIwelke\fP argument\[em]worden gemaakt, waarvan elk type tikt met een verschillende klok en die een ander signaal genereert op het moment van aflopen: .TP \fBITIMER_REAL\fP De timer loopt omlaag in de echte (b.v. wandklok) tijd. Bij elk aflopen wordt een \fBSIGALRM\fP signaal gegenereerd. .TP \fBITIMER_VIRTUAL\fP De timer telt omlaag met de gebruikers\-mode CPU tijd die door het proces geconsumeerd wordt. (Deze meting omvat de gebruikte CPU tijd, die door alle threads in het proces geconsumeerd worden.) Bij elk aflopen wordt een \fBSIGVTALRM\fP signaal gegenereerd. .TP \fBITIMER_PROF\fP Deze timer telt af vanaf de totale CPU tijd (m.a.w. zowel gebruiker als systeem) die door het proces geconsumeerd wordt. (De meting omvat de CPU tijd die wordt geconsumeerd door alle threads van het proces.) Elke keer als de timer verloopt wordt een \fBSIGPROF\fP signaal gegenereerd. .IP In samenhang met \fBITIMER_VIRTUAL\fP kan deze timer worden gebruikt om de gebruiker en systeem CPU tijd die door het proces geconsumeerd wordt te meten. .PP Elk proces heeft alleen een van elk van de drie typen timers. .PP Wekker waardes worden bepaald door de volgende structuren: .PP .in +4n .EX struct itimerval { struct timeval it_interval; /* Interval voor periodieke timer */ struct timeval it_value; /* Tijd tot volgende verlopen */ }; \& struct timeval { time_t tv_sec; /* seconden */ suseconds_t tv_usec; /* microseconden */ }; .EE .in .\" .SS getitimer() De functie \fBgetitimer\fP(2) slaat de huidige waarde van de timer gegeven door \fIhuidige_waarde\fP op in de structuur aangewezen door \fIhuidige_waarde\fP. .PP De \fIit_value\fP substructuur wordt gevuld met de hoeveelheid time de overblijft tot het eerst volgende verlopen van de gespecificeerde timer. Deze waarde verandert als de timer aftelt, en wordt terug gezet naar \fIit_value\fP wanneer de timer afloopt. Indien beide velden van \fIit_value\fP nul zijn, dan wordt de timer niet actief gemaakt. .PP De \fIit_value\fP substructuur wordt gevuld met het timer interval. Als beide velden van \fIit_value\fP nul zijn, dan wordt het een eenmalige timer (m.a.w. dan verloopt deze precies een keer). .SS setitimer() De functie \fBsetitimer\fP(2) vult of leegt de aangewezen timer naar de waarde in \fIwaarde\fP, door het zetten van de timer op de waarde aangegeven door \fInew_value\fP. Indien \fIold_value\fP niet\-nul is, dan wordt de buffer waar het naar wijst gebruikt om de vorige waarde van de timer terug te geven (m.a.w. dezelfde informatie die wordt teruggegeven door \fBgetitimer\fP()). .PP Als een van beide velden in \fInew_value.it_value\fP niet\-nul is, dan wordt de timer geladen om te verlopen op de initieel opgegeven tijd. Als beide velden in \fInew_value.it_value\fP nul zijn, dan wordt de timer uitgezet. .PP Het \fInew_value.it_value\fP veld bepaalt het nieuwe interval voor de timer; indien beide subvelden nul zijn, dan is het een eenmalige timer. .SH "EIND WAARDE" Bij succes wordt nul teruggegeven. Bij falen wordt \-1 teruggegeven en wordt \fIerrno\fP overeenkomstig gezet. .SH FOUTEN .TP \fBEFAULT\fP \fInieuw_waarde\fP, \fIoud_waarde\fP of \fIhuidige_waarde\fP zijn geen geldige pointers. .TP \fBEINVAL\fP \fIwelke\fP is niet een van \fBITIMER_REAL\fP, \fBITIMER_VIRTUAL\fP of \fBITIMER_PROF\fP; of (vanaf Linux 2.6.22) een van de \fItv_usec\fP velden in de structure aangewezen door \fInieuwe_waarde\fP bevat een waarde buiten het bereik [0, 999999]. .SH VERSIES De standaarden vermelden de betekenis van de aanroep: .PP .in +4n .EX setitimer(which, NULL, &oud_waarde); .EE .in .PP Veel systemen (Solaris, de BSD´s, en misschien andere) behandelen dit als equivalent met: .PP .in +4n .EX getitimer(which, &oud_waarde); .EE .in .PP In Linux, wordt dit behandeld als equivalent met een aanroep waarin het \fInieuw_waarde\fP veld nul zijn; dit betekent dat de timer is uitgeschakeld. \fIGebruik dit Linux fenomeen niet\fP: het is niet overdraagbaar en onnodig. .SH "VOLDOET AAN" POSIX.1\-2008. .SH GESCHIEDENIS POSIX.1\-2001, SVr4, 4.4BSD (de aanroep verscheen voor het eerst in 4.2BSD). POSIX.1\-2008 markeerde \fBgetitimer\fP() en \fBsetitimer\fP() als verouderd, en beval het gebruik van de POSIX timer API (\fBtimer_gettime\fP(2), \fBtimer_settime\fP(2), etc.) in plaats daarvan aan. .SH OPMERKINGEN Timers lopen nooit af vóór de gevraagde tijd, maar mogen (korte) tijd ná die tijd aflopen, dit hangt af van resolutie van de systeem timer en van de belasting van het systeem; zie \fBtime\fP(7). (Maar zie BUGS hieronder.) Als de timer afloopt terwijl het proces actief is (altijd waar voor \fBITIMER_VIRTUAL\fP), dan wordt het signaal onmiddellijk afgeleverd nadat het gegenereerd werd. .PP Een kind aangemaakt via \fBfork\fP(2) erft niet de interval timers van zijn ouder. Interval timers blijven bewaard door een \fBexecve\fP(2). .PP POSIX.1 specificeert de interactie tussen \fBsetitimer\fP() en de drie interfaces \fBalarm\fP(2), \fBsleep\fP(3), en \fBusleep\fP(3) niet. .SH BUGS Het genereren en afleveren van een signaal zijn verschillend, en alleen een instantie van elk van de hierboven genoemde signalen mag in behandeling zijn in een proces. Bij sterke belasting, kan een \fBITIMER_REAL\fP timer verlopen voordat het signaal van een eerdere timer afloop werd afgeleverd. In dat geval zal het tweede signaal verloren gaan. .PP Voor Linux 2.6.16 worden timer waarde gerepresenteerd met jiffies. Als een verzoek wordt gemaakt om een timer te zetten met een waarde wiens jiffie representatie \fBMAX_SEC_IN_JIFFIES\fP (gedefinieerd in \fIinclude/linux/jiffies.h\fP) overschrijd, dan wordt de timer stilzwijgend beperkt tot de maximale waarde. Op Linux/i386 (waar, vanaf Linux 2.6.13, de standaard jiffy gelijk is aan 0.004 seconden), betekent dit dat de maximale waarde van een timer ongeveer 99,42 dagen is. Vanaf Linux 2.6.16, gebruikt de kernel een verschillende interne representatie voor tijden, en is dit plafond verwijdert. .PP .\" 4 Jul 2005: It looks like this bug may remain in Linux 2.4.x. .\" http://lkml.org/lkml/2005/7/1/165 Op bepaalde systemen (inclusief i386), hebben Linux kernels voor Linux 2.6.12 een bug die onder bepaalde omstandigheden het voortijdig aflopen van timers veroorzaakt tot wel een jiffy. Deze bug werd opgelost in kernel 2.6.12. .PP .\" Bugzilla report 25 Apr 2006: .\" http://bugzilla.kernel.org/show_bug.cgi?id=6443 .\" "setitimer() should reject noncanonical arguments" POSIX.1\-2001 schrijft voor dat \fBsetitimer\fP() moet falen als een \fItv_usec\fP waarde werd opgegeven die buiten het bereik van 0 tot 999999 ligt. Echter in kernels tot en met 2.6.21, geeft Linux geen fout, maar past in plaats daarvan stilzwijgend de overeenkomstige seconden waarde van de timer aan. Vanaf kernel 2.6.22, werd deze niet\-conformiteit gerepareerd: een ongeldige \fItv_usec\fP waarde resulteert in een \fBEINVAL\fP fout. .SH "ZIE OOK" \fBgettimeofday\fP(2), \fBsigaction\fP(2), \fBsignal\fP(2), \fBtimer_create\fP(2), \fBtimerfd_create\fP(2), \fBtime\fP(7) .PP .SH VERTALING De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema , Mario Blättermann en Luc Castermans . .PP Deze vertaling is vrije documentatie; lees de .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID. .PP Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar .MT debian-l10n-dutch@lists.debian.org .ME .