6.5 pipe
Cette dernière primitive que nous détaillerons, permet d'ouvrir des canaux de
communications entre tâches.
Elle ne se conçoit que grâce à
fork et
exec car un appel à
pipe retourne deux flux, l'un en écriture et l'autre en lecture.
Ces deux flux sont connectés par un tampon agissant comme une file d'attente :
les caractères sont lus sur le canal selon l'ordre où ils y ont été
écrits.
Une tâche seule n'a guère d'intérêt à appeler
pipe.
Toutefois après un
fork on obtient
Et il suffit que la tâche mère n'utilise que son flux entrant tandis que la
tâche fille n'use plus que de son flux sortant pour obtenir :
On a ainsi réalisé une cascade de deux tâches (et c'est ainsi que fait
sh pour créer des schémas en cascade) où
ecrivains et lecteurs sont synchronisés par le canal.