clock - ermittelt die verbrauchte CPU-Zeit
Standard-C-Bibliothek (
libc,
-lc)
#include <time.h>
clock_t clock(void);
Die Funktion
clock() gibt eine Näherung für die vom
Programm verbrauchte Prozessorzeit zurück.
Der Rückgabewert ist die bisher verbrauchte CPU-Zeit. Er ist vom Typ
clock_t. Für die Umrechnung in Sekunden teilen ihn Sie durch
CLOCKS_PER_SEC. Wenn die Prozessorzeit nicht verfügbar oder ihr
Wert nicht darstellbar ist, gibt die Funktion
(clock_t) -1
zurück.
Siehe
attributes(7) für eine Erläuterung der in diesem
Abschnitt verwandten Ausdrücke.
Schnittstelle |
Attribut |
Wert |
clock() |
Multithread-Fähigkeit |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C99. XSI fordert, dass
CLOCKS_PER_SEC
unabhängig von der tatsächlichen Auflösung gleich 1000000
ist.
Der C-Standard lässt willkürliche Werte beim Programmstart zu. Um
maximale Portierbarkeit zu gewährleisten, subtrahieren Sie jeweils den
Rückgabewert von
clock() beim Programmstart.
Beachten Sie, dass Zeit überlaufen kann. Auf einem 32-Bit-System, auf dem
CLOCKS_PER_SEC 1000000 ist, wird diese Funktion ungefähr alle 72
Minuten den gleichen Wert zurückgeben.
Es gibt einige andere Implementierungen, bei denen der Rückgabewert von
clock() auch die Zeiten der Kindprozesse enthält, deren Status
mittels
wait (oder einem Aufruf einer anderen Funktion vergleichbarer
Funktionalität) ermittelt wurden. Die Linux-Implementierung
schließt im Rückgabewert von
clock die Wartezeiten auf
Kindprozesse nicht mit ein. Die Funktion
times(2) liefert detaillierte,
separate Informationen über den aufrufenden Prozess und seine
Kindprozesse zurück. Sie ist vorzuziehen, wenn Sie diese Informationen
benötigen.
In glibc 2.17 und früher setzte
clock() auf
times(2) auf.
Zur Verbesserung der Präzision ist es seit glibc 2.18 als Aufsatz von
clock_gettime(2) implementiert (wobei die
CLOCK_PROCESS_CPUTIME_ID-Uhr verwendet wird).
clock_gettime(2),
getrusage(2),
times(2)
Die deutsche Übersetzung dieser Handbuchseite wurde von Michael Piefel
<
[email protected]>, Patrick Rother <
[email protected]>, Martin
Eberhard Schauer <
[email protected]> und Mario Blättermann
<
[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU
General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer