L'approche générique consiste à écrire une boucle infinie (while (1) { ... }
) et de mettre en pause l'exécution de chaque programme.
Pour mettre en pause, vous pouvez utiliser la fonction sleep
de la bibliothèque standard. Alternativement à sleep
, qui ne peut spécifier que le temps de sommeil en secondes, vous pouvez utiliser la fonction nanosleep
qui permet une meilleure précision.
#include <stdio.h>
#include <time.h>
int main()
{
struct timespec t = { 3/*seconds*/, 0/*nanoseconds*/};
while (1){
printf("Wait three seconds and...\n");
nanosleep(&t,NULL);
fflush(stdout); //see below
}
}
Notez que si vous ajoutez un caractère de nouvelle ligne (\n
) à la chaîne que vous outpu, vous avez très probablement ne verrez rien, car la chaîne est d'abord imprimé à un tampon et que le tampon est parfois rincé à la terminal (ce qui arrive généralement lorsque vous imprimez un saut de ligne, mais même cela ne peut pas garantir le flush sur chaque système). C'est pourquoi il est préférable d'ajouter l'appel fflush
.
Vous me sauvez. fflush (stdout) doit être utilisé pour montrer tous les changements. – Devyn
@Devyn, peut-être alors vous devriez accepter cette réponse à la place? –