times(2)

NAAM
times - verkrijg proces tijden

BIBLIOTHEEK
Standaard C bibliotheek (libc, -lc)

SAMENVATTING
#include <sys/times.h>

clock_t times(struct tms *buf);

BESCHRIJVING
times() slaat tijden van het huidige proces op in buf. struct tms is zoals bepaald in <sys/times.h>:

    struct tms {
        clock_t tms_utime;  /* gebruiker tijd */
        clock_t tms_stime;  /* systeem tijd */
        clock_t tms_cutime; /* gebruiker tijd van kinderen */
        clock_t tms_cstime; /* systeem tijd van inderen */
    };

Het tims_utime veld bevat de tijd die de CPU besteed aan het uitvoeren van instructies van het huidige proces. De tms_stime veld bevat de tijd die de CPU besteed aan het uitvoeren in de kernel terwijl taken worden uitgevoerd namens het huidige proces.

Het tms_cutime veld bevat de som van de tms_utime en tms_cutime waarden voor alle beëindigde kinderen waarop gewacht wordt. Het tms_cstime veld bevat de som van de tms_stime en tms_cstime waarden voor alle beëindigde kinderen waarop gewacht wordt.

Tijden voor beëindigde kinderen (en hun nakomelingen) wordt toegevoegd op het moment dan wait(2) of waitpid(2) hun proces ID teruggeven. In het bijzonder, worden tijden van kleinkinderen waarop de kinderen niet wachten nooit gezien.

All gerapporteerde tijden zijn in klok tikken.

EIND WAARDE
times() geeft het aantal klok tikken die verstreken zijn vanaf een willekeurig punt in het verleden. De uitvoer waarde kan het mogelijke bereik van het type clock_t overlopen. Bij een fout wordt (clock_t) -1 teruggegeven, en wordt errno gezet om de fout te melden.

FOUTEN

EFAULT
    tms wijst buiten de adres ruimte van het aanroepende proces.

VERSIES
Op Linux mag het buf argument worden opgegeven als NULL, met als resultaat dat times() alleen het functie resultaat teruggeeft. Echter, specificeert POSIX dit gedrag niet en de meeste andere UNIX implementaties vereisen een niet-NULL waarde voor buf.

STANDAARDEN
POSIX.1-2024.

HISTORIE
POSIX.1-2001, SVr4, 4.3BSD.

In POSIX.1-1996 wordt het symbool CLK_TCK (gedefinieerd in <time.h>) genoemd als overbodig. Het is nu overbodig.

In Linux kernel versies voor 2.6.9, als de dispositie van SIGCHLD op SIG_IGN werd gezet, werden de tijden van beëindigde kinderen automatisch opgenomen in de tms_cstime en tms_cutime velden, hoewel POSIX.1-2001 zegt dat dit alleen mag gebeuren als het huidige proces, wacht, wait(2)s op zijn kinderen. Deze non-conformiteit werd gecorrigeerd in Linux 2.6.9 en later.

On Linux, the “arbitrary point in the past” from which the return value of times() is measured has varied across kernel versions. On Linux 2.4 and earlier, this point is the moment the system was booted. Since Linux 2.6, this point is (2^32/HZ) - 300 seconds before system boot time. This variability across kernel versions (and across UNIX implementations), combined with the fact that the returned value may overflow the range of clock_t, means that a portable application would be wise to avoid using this value. To measure changes in elapsed time, use clock_gettime(2) instead.

SVr1-3 retourneert long waarvan de struc leden van het type time_t zijn hoewel ze klok tikken bewaren, en niet seconden vanaf de Epoch. V7 gebruikte long voor de struct leden, omdat het geen type time_t had.

OPMERKINGEN
Het aantal klok tikken per seconde kan worden verkregen door:

    sysconf(_SC_CLK_TCK);

Let op dat clock(3) ook een waarde van het type clock_t terug geeft, maar dat deze waarde gemeten wordt in eenheden van CLOCKS_PER_SEC, en niet de klok tikken zoals gebruikt door times().

BUGS
Een beperking van de Linux systeem aanroepen conventies op sommige architecturen (met name i386) betekent dat op Linux 2.6 er een kort tijd venster is (41 seconden) kort na de start dat times() een -1 kan teruggeven, foutief aangevend dat een fout optrad. Het zelfde probleem kan optreden wanneer de uitvoer waarde de maximum waarde overschrijdt die opgeslagen kan worden in clock_t.

ZIE OOK
time(1), getrusage(2), wait(2), clock(3), sysconf(3), time(7)

VERTALING
De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.