TIMES(2) | Linux Programmeurs Handleiding | TIMES(2) |
times - verkrijg proces tijden
#include <sys/times.h>
clock_t times(struct tms *buf);
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.
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.
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
Het aantal klok tikken per seconde kan worden verkregen door:
sysconf(_SC_CLK_TCK);
In POSIX.1-1996 wordt het symbool CLK_TCK (gedefinieerd in <time.h>) genoemd als overbodig. Het is nu overbodig.
In de 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 wait(2)s op zijn kinderen. Deze non-conformiteit werd gecorrigeerd in Linux 2.6.9 en later.
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.
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().
Op Linux heeft het "willekeurige punt in het verleden" van waar af de uitvoer waarde van times() wordt gemeten gevarieerd over kernel versies. Op Linux 2.4 en vroeger, was dit het moment waarop het systeem werd opgestart. Vanaf Linux 2.6 ligt dit punt (2^32/Hz) - 300 seconden voor de start van het systeem. Deze variatie over kernel versies (en over UNIX implementaties), gecombineerd met het feit dat de teruggegeven waarde het bereik van clock_t kan overlopen betekent dat het wijs is dat een overdraagbare applicatie het gebruik van deze waarde vermijd. Gebruik in zijn plaats beter clock_gettime(2) om veranderingen in verstreken tijd te meten .
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.
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.
time(1), getrusage(2), wait(2), clock(3), sysconf(3), time(7)
Deze pagina is onderdeel van release 5.10 van het Linux man-pages-project. Een beschrijving van het project, informatie over het melden van bugs en de nieuwste versie van deze pagina zijn op https://www.kernel.org/doc/man-pages/ te vinden.
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 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.
15 september 2017 | Linux |