usleep() la fonction ne permet pas une boucle à continuer

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(void)
{
        int i=0;
        while(i<10)
        {
                printf("%d", i);
                usleep(10000); //or sleep(1)
                i++;
        }
        return 0;
}

Je veux le programme au cours des 10 dernières secondes, c'est à dire d'impression 1 - attendre 1 sec - impression 2 - attendre 1 sec et ainsi de suite jusqu'à la fin. Mais il ne le fait pas, il a juste attend tous les temps (10 secondes), puis imprime la totalité du tableau de chiffres sans aucun temps de retard entre eux, c'est juste des impressions 0123456789 à la fois.
EDIT: j'ai essayé avec la fonction sleep() au lieu de usleep mais c'est la même
Comment résoudre ce problème ? Et pourquoi c'est comme ça ?

  • aussi, si vous souhaitez que le programme au cours des 10 dernières secondes, alors vous ne devriez pas simplement ajouter plusieurs dort et les ajouter car wach boucle nécessite plus de temps pour exécuter le printf et les frais généraux.
InformationsquelleAutor ggg | 2010-02-13