Next: Lecture dans un tube Up: Tubes et Tubes Nommés Previous: Les tubes ordinaires (pipe)

Création de tubes ordinaires

Un processus ne peut utiliser que les tubes qu'il a créés lui-même par la primitive pipe ou qu'il a hérités de son père grâce à l'héritage des descripteurs à travers fork et exec.
#include <unistd.h>
int pipe(int  p[2]);
  figure1419
Figure 10.1: Ouverture d'un tube

On ne peut pas manipuler les descripteurs de tubes avec les fonctions et primitives: lseek, ioctl, tcsetattr et tcgetattr, comme il n'y a pas de périphérique associé au tube (tout est fait en mémoire).

Héritage d'un tube dans la figure 10.2 : le processus B hérite des descripteurs ouverts par son père A et donc, ici, du tube.

  figure1424
Figure 10.2: Héritage d'un tube

Dans la Figure 10.3, les descripteurs associés aux tubes sont placés comme descripteurs 0 et 1 des processus A et B, c'est à dire la sortie de A et l'entrée de B. Les autres descripteurs sont fermés pour assurer l'unicité du nombre de lecteurs et d'écrivains dans le tube.

  figure1429
Figure 10.3: Redirection de la sortie standard de A dans le tube et de l'entrée standard de B dans le tube, et fermeture des descripteurs inutiles
 


Dominique REVUZ

Mon Feb 2 12:10:31 MET 1998 Une Bug Un mail Merci