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

    Les instructions se déroulent dans l'ordre séquentiel à l'intérieur d'un même processus, donc, les ordres {2}, {3}, {4}, {5}, {6} d'une part, et {7}, {8}, {9}, {10} d'autre part doivent être respectés. Mais ces deux suites peuvent être entrelacées de toutes les façons possibles, selon l'instant où l'ordonnanceur (le scheduler) retire le processeur à un processus pour le donner à l'autre.

    Voici quelques séquences possibles, et les affichages correspondants :
 
{2}, {3}, {7}, {8}, {4}, {9}, {5}, {6}, {10}  lu par le père : k
lu par le père : h
lu par le fils : d

ou
 
{2}, {7}, {3}, {8}, {9}, {4}, {5}, {6}, {10}  lu par le père : d
lu par le père : j
lu par le fils : i

    On a montré dans un exercice sur les fichiers que le même fichier ouvert deux fois dans le même programme, donc accessible par deux file descriptors distincts, pouvait être parcouru de façon indépendante en utilisant l'un ou l'autre des file descriptors. Le pointeur de fichier ne peut donc pas se trouver dans la table des i-noeuds, dans laquelle il n'y a qu'un seul élément par fichier ouvert, quel que soit le nombre d'ouvertures de ce fichier. En revanche, on a montré dans un autre exercice que, si un fichier est ouvert une seule fois mais accessible par plusieurs file descriptors obtenus au moyen des fonctions dup() ou dup2(), les opérations sur l'un des file descriptors affectent les opérations sur les autres : il n'y a qu'un seul pointeur de fichier par fichier ouvert, quel que soit le nombre de file descriptors dans le même processus.

    Cet exercice montre qu'il en est de même si les file descriptors correspondant au même fichier ouvert sont dans des processus distincts : le père et le fils utilisent le même pointeur de fichier.