====== clock() ====== clock ist definiert in der [[c:lib:time:start|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 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 #include //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