Bonjour,
Je bloque sur un petit problème en C.
En fait, je voudrais écrire une fonction qui vérifie si assez de temps s’est écoulé pour éxécuter du code.
Cette fonction, je voudrais lui donner comme seul paramètre la période.
Mon problème se pose lorsque j’utilise cette fonction pour une période de 2 secondes, puis pour une période plus grande : le code pour une période plus grande ne s’exécute jamais.
Pouvez-vous me conseiller?
Voici cette fonction :
int runevery(int sec){
/*return 1 if enough time is elapsed
* since last run
* else return 0 */
time_t new = time(NULL);
static time_t before = 0;
if ( difftime(new, before ) >= sec)
{
before = new;
return(1);
}
else
return(0);
}
int main(int argc, char *argv[])
{
for (;;sleep(1)){
if ( runevery(3) )
printf("3 sec elapsed\n");
if (runevery(5))
printf("5 sec elapsed\n"); // n'apparait jamais
else
printf("please wait\n");
}
return 0;
}