Gérer le temps jusqu'aux millisecondes

Le
TSalm
Bonjour,

"time_t" sait gérer le temps jusqu'aux secondes.
Est-ce qu'il existe un outil plutôt standart pour gérer le temps et qui
sait travailler jusqu'aux millisecondes ?

D'avance merci,
-TSalm
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fabien LE LEZ
Le #20573591
On Tue, 17 Nov 2009 18:32:21 +0100, TSalm
Est-ce qu'il existe un outil plutôt standart pour gérer le temps et qui
sait travailler jusqu'aux millisecondes ?



En théorie, clock() devrait convenir.
http://www.cplusplus.com/reference/clibrary/ctime/clock/

Toutefois, sous Windows, il est relativement difficile d'obtenir une
résolution meilleure que 15 ou 16 millisecondes : il faut bricoler
avec des fonctions spécifiques à Windows, comme
QueryPerformanceCounter().
TSalm
Le #20573811
Le Tue, 17 Nov 2009 18:56:31 +0100, Fabien LE LEZ a écrit:

On Tue, 17 Nov 2009 18:32:21 +0100, TSalm
Est-ce qu'il existe un outil plutôt standart pour gérer le temps et qui
sait travailler jusqu'aux millisecondes ?



En théorie, clock() devrait convenir.
http://www.cplusplus.com/reference/clibrary/ctime/clock/

Toutefois, sous Windows, il est relativement difficile d'obtenir une
résolution meilleure que 15 ou 16 millisecondes : il faut bricoler
avec des fonctions spécifiques à Windows, comme
QueryPerformanceCounter().




Non, je voulais parler du temps dans le sens
années,mois,jours,heures,minutes,secondes,millisecondes.
Il me semble que ca tiendrait dans un <long long>, alors que <time_t> ne
tiens que dans un <long> et ne gére que jusqu'aux secondes.
Fabien LE LEZ
Le #20573801
On Tue, 17 Nov 2009 19:03:03 +0100, TSalm
Non, je voulais parler du temps dans le sens
années,mois,jours,heures,minutes,secondes,millisecondes.



POSIX définit gettimeofday(). Mais comme d'hab', tu vas te heurter au
fait que Windows n'est pas POSIX...
Richard Delorme
Le #20573951
Le 17/11/2009 19:14, Fabien LE LEZ a écrit :
On Tue, 17 Nov 2009 19:03:03 +0100, TSalm
Non, je voulais parler du temps dans le sens
années,mois,jours,heures,minutes,secondes,millisecondes.



POSIX définit gettimeofday(). Mais comme d'hab', tu vas te heurter au
fait que Windows n'est pas POSIX...




Sous Windows, il y a GetSystemTime() et GetLocalTime().

http://msdn.microsoft.com/en-us/library/ms724950%28VS.85%29.aspx

--
Richard
Fabien LE LEZ
Le #20574071
On Tue, 17 Nov 2009 19:17:13 +0100, Richard Delorme

Sous Windows, il y a GetSystemTime()



...et Cygwin.
Richard Delorme
Le #20574491
Le 17/11/2009 19:41, Fabien LE LEZ a écrit :
On Tue, 17 Nov 2009 19:17:13 +0100, Richard Delorme

Sous Windows, il y a GetSystemTime()



...et Cygwin.



Pour une compatibilité POSIX, on doit pouvoir s'en passer. P.ex avec :

http://www.cadforte.com/system64.html

--
Richard
TSalm
Le #20575741
Le Tue, 17 Nov 2009 20:19:36 +0100, Richard Delorme écrit:

Le 17/11/2009 19:41, Fabien LE LEZ a écrit :
On Tue, 17 Nov 2009 19:17:13 +0100, Richard Delorme

Sous Windows, il y a GetSystemTime()



...et Cygwin.



Pour une compatibilité POSIX, on doit pouvoir s'en passer. P.ex avec :

http://www.cadforte.com/system64.html




Merci pour vos réponses.
Heureux utilisateur de MinGW, je dispose bien
James Kanze
Le #20577581
On Nov 17, 5:56 pm, Fabien LE LEZ
On Tue, 17 Nov 2009 18:32:21 +0100, TSalm


>Est-ce qu'il existe un outil plutôt standart pour gérer le
>temps et qui sait travailler jusqu'aux millisecondes ?



En théorie, clock() devrait
convenir.http://www.cplusplus.com/reference/clibrary/ctime/clock/



Toutefois, sous Windows, il est relativement difficile
d'obtenir une résolution meilleure que 15 ou 16 millisecondes
: il faut bricoler avec des fonctions spécifiques à Windows,
comme QueryPerformanceCounter().



La fonction clock() ne convient pas du tout, puisque d'une part,
ce qu'elle est censée mesurer, c'est le temps CPU utilisé par le
programme, et non le temps tout court, et de l'autre, la
résolution n'est pas spécifiée, et est rarement jusqu'aux
millisecondes. (Historiquement, dans les premiers Unix, où la
fonction a vue le jour, CLOCKS_PER_SECOND était 50 ou 60, selon
que la machine se trouvait en Europe ou aux États-unis. La norme
Posix exige que CLOCKS_PER_SECOND vale 1000000, mais dit
explicitement que la resolution dépend du système.)

Et sous Unix et sous Windows il y a des fonctions fournissant
une meilleur résolution, mais elles ne sont pas portables.

--
James Kanze
Publicité
Poster une réponse
Anonyme