Tube nommé
En informatique, le terme tube nommé (calqué sur l'anglais named pipe) est une mise en œuvre des tubes Unix. Comme les tubes anonymes, les tubes nommés sont des zones de données organisées en FIFO mais contrairement à ceux-ci qui sont détruits lorsque le processus qui les a créés disparait, les tubes nommés sont liés au système d'exploitation et ils doivent être explicitement détruits. Ce type de mécanisme se retrouve bien sûr dans tous les systèmes d'exploitation de type Unix mais aussi dans les systèmes d'exploitation de Microsoft cependant leur sémantique est sensiblement différente.
Il s'agit de l'une des techniques permettant la communication inter-processus. Un tube peut aussi être appelé Conduite, notamment dans la page man Unix.
En pratique, cela sert à rediriger la sortie d'un processus vers l'entrée d'un autre.
Sous Unix
Par exemple, on peut créer un tube et compresser par gzip les données qui lui sont envoyées :
mkfifo my_pipe gzip -9 -c < my_pipe > out.gz
Dans un shell, indépendamment, on peut envoyer des données à compresser:
cat file > my_pipe
Le tube nommé peut ensuite être effacé comme un simple fichier :
rm my_pipe
En langage C, on va créer un tel objet avec l'appel système mknod() et la constante S_IFIFO, ou simplement avec l'autre appel système mkfifo() :
mknod("nom_du_tube", S_IFIFO, 0); mkfifo("nom_du_tube");
Sous Windows
Microsoft France les appelle « canaux nommés ». Ces canaux pointent dans un dossier partagé sur le réseau (PRINT$), un fichier local (précédé du caractère "|") ou une ressource réseau logicielle (IPC$ ; SQL Server).
Modélisation Common Information Model
Le standard CIM Schema modélise les tubes nommées avec la class CIM_FIFOPipeFile, type spécial de fichier destiné aux communications inter-processes indépendants, au contraire des tubes anonymes destinés par exemple aux redirections[1].
Voir aussi
Références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Named pipe » (voir la liste des auteurs).