J'écris du code c/C++ sous Windows en utilisant Visual Studio. Je veux savoir comment calculer efficacement l'heure de début de mon processus. Puis-je utiliser gettimeofday()? J'ai trouvé le code suivant à partir de Google, mais je ne comprends pas ce qu'il fait vraiment:Calculez par programme l'heure de début d'un processus sous Windows
int gettimeofday(struct timeval *tv, struct timezone *tz)
{
FILETIME ft;
unsigned __int64 tmpres = 0;
static int tzflag;
if (NULL != tv)
{
GetSystemTimeAsFileTime(&ft);
//I'm lost at this point
tmpres |= ft.dwHighDateTime;
tmpres <<= 32;
tmpres |= ft.dwLowDateTime;
/*converting file time to unix epoch*/
tmpres /= 10; /*convert into microseconds*/
tmpres -= DELTA_EPOCH_IN_MICROSECS;
tv->tv_sec = (long)(tmpres/1000000UL);
tv->tv_usec = (long)(tmpres % 1000000UL);
}
if (NULL != tz)
{
if (!tzflag)
{
_tzset();
tzflag++;
}
tz->tz_minuteswest = _timezone/60;
tz->tz_dsttime = _daylight;
}
return 0;
}
GMan, comment avez-vous le code pour regarder agréable? J'ai essayé d'utiliser les étiquettes de code, mais cela n'a pas fonctionné. –
Vous devez pré-attacher chaque ligne avec quatre espaces, pas seulement le premier. – GManNickG
Je pense que vous devez être plus précis sur ce que vous entendez par "calculer l'heure de début". Voulez-vous être en mesure de l'imprimer sous une forme lisible par l'homme, par ex. "Juillet 24, 2009, 20:14"? Ou voulez-vous l'utiliser dans un calcul, par ex. pour mesurer le temps écoulé depuis la dernière exécution de votre programme? Ou autre chose? La réponse dépend de ce que vous voulez faire avec la valeur de temps. –