Sommaire

Les principes Tube

Les tubes permettent à des processus de se transmettre un flux de données sans avoir à le stocker dans un fichier disque. Les tubes peuvent être anonymes (pipes) ou nommés (named pipes). Les premiers ne sont accessibles qu’à des processus apparentés (ayant un processus « ancêtre » commun), les seconds peuvent être utilisés par tout processus ayant les droits d’accès adéquats sur le tube nommé.

Le mécanisme du tube, géré par le noyau, vient du système Unix et se retrouve sur tous les systèmes de type Unix (et aussi sur Windows). Il est surtout utilisé pour échanger des données entre processus, mais peut également servir d’outil de synchronisation entre processus.

1. Flot d’octets (bytestream)

Un tube (anonyme ou nommé) est géré par le noyau comme un flot d’octets (bytestream) unidirectionnel, établi entre plusieurs processus. Il est unidirectionnel au sens où un processus peut écrire ou lire dans le tube, mais pas les deux. On distingue des processus écrivains et des processus lecteurs.

Une fois le tube créé et ouvert par au moins un processus écrivain et au moins un processus lecteur, les processus écrivent ou lisent des données dans le tube, via les appels système standards d’écriture et de lecture fichiers, write() et read(). Ils peuvent également ...