Bonjour,
Je viens de faire tourner ce petit code 1000 secondes (tout en continuant de travailler sur le même PC), sans décalage apparent, mais voir ce que cela donnera sur plusieurs heures !
#include <stdio.h>
#include <time.h>
#include <windows.h>
int main(void)
{
// --- Horloge au début
time_t tH0 = time(NULL);
printf("H0 = %ld\n",tH0);
// --- Boucle simulant l'horloge
int iCpt = 0;
for (int i=0 ; i<1000 ; ++i)
{
Sleep(1000); // 1000 ms
++iCpt;
}
// --- Horloge à la fin / compteur
time_t tH1 = time(NULL);
printf("H1 = %ld = h0 + %d secondes\n",tH1,(int)(tH1 - tH0));
printf("Compteur = %d\n",iCpt);
return 0;
}
Ce qui donne :
H0 = 1209544153
H1 = 1209545153 = h0 + 1000 secondes
Compteur = 1000
Mais j'imagine bien que la fonction Sleep() doit utiliser l'horloge du PC ! Si c'est le cas on continue d'en dépendre indirectement.
Jean-François