Tubes de communication Tube

Un tube (pipe en anglais) permet de faire communiquer deux processus. Le tube est représenté par une barre verticale (combinaison de touches [Alt Gr] 6 sur un clavier AZERTY) située entre deux commandes Unix. Le résultat de la commande de gauche va partir dans le tube, tandis que la commande de droite va en extraire les données afin de les traiter. Pipe

Les figures 12 et 13 représentent le mécanisme interne associé au tube de communication. Tube:mécanisme interne 

images/02ri12.png

Figure 9 : Mécanisme interne du tube de communication - Première étape

images/02ri13.png

Figure 10 : Mécanisme interne du tube de communication - Deuxième étape

Quelles que soient les commandes présentes de chaque côté du tube, le shell de travail détecte le caractère | sur la ligne de commande et va engendrer un shell enfant (1) qui, à son tour, va faire de même (2). Le premier shell enfant (PID=205) dissocie sa sortie standard du terminal et la connecte sur l’entrée du tube (3). Le deuxième shell enfant (PID=206) dissocie son entrée standard du terminal et la connecte sur la sortie du tube (4).

Chaque shell enfant va se remplacer avec sa commande (5a et 5b). Chaque commande commence alors à s’exécuter. Lorsque la commande who écrit sur sa sortie standard, les messages partent dans le tube (6a). Parallèlement, la commande mail lit son entrée standard (6b), ce qui provoque...

couv_EI7PRO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Redirections
Suivant
Regroupement de commandes