Comportement de sleep() avec printf
Bonjour,
Voici un petit problème que je n'arrive pas à comprendre avec le comportement de sleep().
Dans le code suivant, les deux tests affichent un texte, puis endort le programme pendant 2 secondes.
La seule différence est le saut de ligne (\n) dans le printf avant la fonction sleep.
Lors de l'execution du premier test, le texte apparait à l'écran qu'APRES le sleep,
tandis que dans le second test, le texte apparait AVANT le sleep.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <stdio.h>
#include <unistd.h>
int main(void)
{
// Premier test
printf("Ce texte s'affiche APRES le sleep(2)") ;
sleep(2) ; // Ici : Le texte s'affiche APRES le sleep
printf("\n") ;
printf("Fin du test...\n") ;
printf("------\n") ;
// Second test
printf("Ce texte s'affiche AVANT le sleep(2)\n") ;
sleep(2) ; // Ici : Le texte s'affiche AVANT le sleep
printf("Fin du test...\n") ;
return 0 ;
} |
Si quelqu'un à une explication dans ce comportement, cela serait le bienvenue :)
Merci.
OS : Linux version 2.4.27-2-386
Compilateur : gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)