Résultat de l'affichage du programme fork_d.cxx :

     L'affichage est identique à celui obtenu avec le programme fork_c. Il apparaît donc que le caractère '\n' joue le même rôle que le manipulateur endl, car il vide le buffer immédiatement. Il n'y a donc pas duplication du buffer par la fonction fork() et le message "Après le fork()" n'apparaît qu'une seule fois.

    En réalité, c'est un peu moins simple, et, avant de lire l'explication qui suit, vous êtes invité(e) à réexécuter le programme fork_d en redirigeant sa sortie standard vers un fichier :
 
duo/mathieu>fork_d > toto

puis à visualiser le contenu de ce dernier.

    Vous obtenez probablement quelque chose comme :
 
duo/mathieu>less toto
Avant le fork()
Apres le fork() pid = 
12988
Apres le fork() pid = 
0

    En fait, le caractère '\n' n'a le même effet que endl que si le fichier physique associé à cout est l'écran.