Je viens de passer 1 heure à chercher ce qui pouvait bien faire boguer mon programme... Et je viens de comprendre que le bug ne vient pas de mon code mais d'un étrange comportement de
printf
Compilez ceci avec GCC :
#include <time.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
time_t now= 0;
time_t last= 0;
while (1) {
now= time(NULL);
if (now != last) {
last= now;
printf("1 SECONDE...\n");
}
}
return (0);
}
Comme on s'y attend,
1 SECONDE s'affiche une fois par seconde.
Maintenant, compilez ceci (la seule différence avec le code d'au-dessus, c'est qu'il n'y a pas de \n à la fin du
printf) :
#include <time.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
time_t now= 0;
time_t last= 0;
while (1) {
now= time(NULL);
if (now != last) {
last= now;
printf("1 SECONDE... ");
}
}
return (0);
}
Plus rien ne s'affiche
