times(2)

NAVN
times - indhent procestider

BIBLIOTEK
C-standardbibliotek (libc, -lc)

SYNOPSIS
#include <sys/times.h>

clock_t times(struct tms *buf);

BESKRIVELSE
times() lagrer den nuværende procestid i struct tms som buf peger på. struct tms er defineret i <sys/times.h>:

    struct tms {
        clock_t tms_utime;  /* brugertid */
        clock_t tms_stime;  /* systemtid */
        clock_t tms_cutime; /* brugertid for underprocesser */
        clock_t tms_cstime; /* systemtid for underprocesser */
    };

Feltet tms_utime indeholder cpu-tiden brugt på at afvikle instruktioner for den kaldende proces. Feltet tms_stime indeholder cpu-tiden brugt på afvikling i kernen under udførelse af opgaver på vegne af den kaldende proces.

Feltet tms_cutime indeholder summen af tms_utime- og tms_cutime-værdierne for alle ventet-på afsluttede underprocesser. Feltet tms_cstime indeholder summen af tms_stime- og tms_cstime-værdierne for alle ventet-på afsluttede underprocesser.

Tider for afsluttede underprocesser (og deres efterkommere) tilføjes i det øjeblik at wait(2) eller waitpid(2) returnerer deres proces-id. Specielt ses tiderne for underunderprocesser som underprocesserne ikke ventede på aldrig.

Alle tider rapporteret er i klokkeslæt.

RETURVÆRDI
times() returnerer antallet af klokkeslæt, der er foregået siden et arbitrært punkt i fortiden. Returværdien kan løbe over det mulige typeinterval clock_t. Ved fejl returneres (clock_t) -1 og errno angives for at indikere fejlen.

FEJL

EFAULT
    tms peger uden for processens adresserum.

VERSIONER
På Linux kan argumentet buf angives som NULL, med det resultat at times() bare returnerer et funktionsresultat. POSIX angiver dog ikke denne opførsel og de fleste andre UNIX-implementeringer kræver en ikke-NULL-værdi for buf.

STANDARDER
POSIX.1-2024.

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

I POSIX.1-1996 er symbolet CLK_TCK (defineret i <time.h>) nævnt som forældet. Det er forældet nu.

Før Linux 2.6.9, hvis dispositionen af SIGCHLD er angivet til SIG_IGN, så inkluderes tiderne for afsluttede underprocesser automatisk i felterne tms_cstime og tms_cutime, selvom POSIX.1-2001 siger, at dette kun bør ske hvis den kaldende proces (wait(2)) venter på sin underproces. Denne manglende overholdelse af standarden er rettet i Linux 2.6.9 og senere.

På Linux har “det arbitrære punkt i fortiden” hvorfra returværdien for times() måles varireret på tværs af kerneversioner. På Linux 2.4 og tidligere er dette tidspunktet hvor systemet blev startet op. Siden Linux 2.6 er dette punkt (2^32/HZ) - 300 sekunder før systemets opstartstidspunkt. Denne variation på tværs af kerneversioner (og på tværs af UNIX-implementeringer), kombineret med det faktum at den returnerede værdi kan være større end intervallet for clock_t, betyder at et flytbart program gør klogt i at undgå denne værdi. For at måle ændringer i forløbet tid bruges clock_gettime(2) i stedet for.

SVr1-3 returnerer long og strukturmedlemmerne er af typen time_t selvom de lagrer klokkeslæt, ikke sekunder siden Epoch. V7 brugte long for strukturmedlemmerne, da det endnu ikke havde typen time_t.

NOTER
Antallet af klokkeslæt per sekund kan indhentes via:

    sysconf(_SC_CLK_TCK);

Bemærk at clock(3) også returnerer en værdi af typen clock_t, men denne værdi måles i enheder af CLOCKS_PER_SEC, ikke klokkeslættene brugt af times().

FEJL
En begrænsning af Linux-systemkaldenes konventioner på nogle arkitekturer (specielt i386) betyder at på Linux 2.6 er der et lille tidsvindue (41 sekunder) lige efter opstart hvor times() kan returnere -1, og dermed forkert indkere at der opstod en fejl. Den samme fejl kan opstå, når returværdien omslutter forbi den maksimaleværdi, der kan lagres i clock_t.

SE OGSÅ
time(1), getrusage(2), wait(2), clock(3), sysconf(3), time(7)

OVERSÆTTELSE
Oversættere af denne manual til dansk Joe Hansen <joedalton2@yahoo.dk>

Denne oversættelse er gratis dokumentation; læs GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR.

Hvis du støder på fejl i oversættelsen af ​​denne vejledning, skal du sende en besked til debian-l10n-danish@lists.debian.org.