2010-02-19 7 views
3

Possible en double:
C++ Timer function to provide time in nano secondsSystem.nanoTime() équivalent en C

Je dois sortir d'une boucle à l'approche 3 secondes, donc je dois calculer le temps écoulé .

Je me déplace un code de Java à C, et j'utilisais le System.nanoTime facile() en Java,

Comment pourrais-je faire cela en C? J'ai remarqué que le temps (NULL) retournera les secondes, mais je cherche plus de précision.

Nous vous remercions à l'avance

+0

dupe? http://stackoverflow.com/questions/275004/c-timer-function-to-provide-time-in-nano-seconds –

Répondre

0

utilisation gettimeofday, il a une résolution de microsecondes. System.nanoTime() en Java est couramment mis en œuvre en utilisant gettimeofday sur * nix

+0

Attention; gettimeofday peut signaler une valeur en microsecondes, mais la résolution réelle dépend de la plate-forme. Il n'est pas mis à jour à ce rythme. – Clifford

0

Pour la résolution que vous voulez, clock() de la bibliothèque standard C est suffisante:

#include <time.h> 
#define RUNTIME_MAX_SEC 3 

clock_t start = clock(); 
while(clock() - start < CLOCKS_PER_SEC * RUNTIME_MAX_SEC) 
{ ... }