2013-06-27 1 views
0

Je dois aussi obtenir les millisecondes en utilisant seulement la bibliothèque "time.h".Comment obtenir l'heure actuelle en millisecondes en utilisant la bibliothèque "time.h" (seulement)?

Pour quelques secondes, voici ce que j'ai:

time_t now; 
time(&now); 

printf("seconds since Jan 1, 1970 %d", now); 
+0

Les réponses à cette question dépendent principalement des normes que vous avez à votre disposition ... seulement C ... ou POSIX et si oui, de quelle (s) version (s). – PlasmaHH

Répondre

6

Les fichiers d'en-tête <time.h> ou <ctime>, tel que spécifié par le C et C++ respectivement les normes, ne prend pas en charge le moment la seconde.

Si vous pouvez utiliser C++ et avoir un environnement compatible C++ 11, vous pouvez obtenir un support portable avec la fonctionnalité std::chrono. Il y a aussi un boost::chrono qui pourrait être utilisé dans les anciennes versions de C++.

Sinon, vous devrez aller spécifique au système, avec par exemple gettimeofday sous Linux/Unix et SystemTime sous Windows. Pour les autres systèmes d'exploitation, vous devez rechercher les fonctions de temps, le cas échéant.

1

Normalement, on utiliserait une fonction de bibliothèque spécifique au système d'exploitation ou à un tiers (par exemple, clock_gettime sous Linux). Cependant, si vous êtes désespéré et que vous ne pouvez vraiment pas utiliser d'autres fonctions, vous pouvez charger votre programme - attendez et comptez les cycles du processeur en utilisant la fonction clock() dans le temps. Cependant, ce n'est certainement pas une bonne idée - il suffit d'utiliser l'un des nombreux autres fichiers d'en-tête qui fournissent ce dont vous avez besoin.

Questions connexes