clock()

clock ist definiert in der time, die in C über time.h, bzw. in C++ über ctime eingebunden wird.

Funktion

clock() gibt die Anzahl der Ticks seit dem Programmstart zurück. Ab wann bei einem Programmstart die Ticks gezählt werden, ist je nach Plattform verschieden.

Die Konstante CLOCKS_PER_SEC gibt die Anzahl der Ticks pro Sekunde an und kann zum Umrechnen verwendet werden.

Signatur

#include <time.h>
clock_t clock ( void );

Return Value: Ticks seit dem Programmstart (clock_t)

Fehlerquellen

Da die Anzahl der Ticks von der Art und Weise wie das Programm gestartet wurde und damit von der Plattform abhängt, kann man auf unterschiedlichen Plattformen unterschiedliche Werte erhalten. Um einheitliche Werte zu erhalten, sollte man direkt nach dem Programmstart die Funktion aufrufen und den Rückgabewert zu dieser Zeit speichern. Möchte man nun die Ticks seit dem Programmstart wissen, so ruft man clock auf und zieht vom Ergebnis den bei Programmstart gemessenen Wert ab.

Beim Mac (OS 10.6) steht CLOCKS_PER_SEC auf 1000000. Beim Versuch clock() als Zeitsteuerung zu verwenden, schwankte clock() allerdings mit Werten zwischen 30000 und 950000. Während das Programm minimiert ist, lief es weiter, erhielt jedoch gar keine clock()-Signale mehr. Das clock() Signal ist also alles andere als zuverlässig.

Beispiel

Anmerkung: Dieses Programm ist NUR ein Beispiel und sollte nicht dazu verwendet werden, um ein Programm warten zu lassen. Um ein Programm warten zu lassen, siehe sleep() (TODO - Artikel zu sleep?).

#include <time.h>
#include <stdlib.h>
 
//Programm wartet 5 Sekunden
int main (void)
{
   int sec = 5;
   clock_t ende = clock() + sec * CLOCKS_PER_SEC;
 
   while (clock() < ende) 
   {}
 
   return EXIT_SUCCESS;
}

Siehe auch

- TODO