Tube anonyme

Définition, exemples et bonnes pratiques

À retenir

  • Unidirectionnel : les données circulent dans un seul sens.
  • FIFO (First In, First Out) : l'ordre des données est scrupuleusement respecté.
  • Éphémère : il disparaît dès que les programmes concernés s'arrêtent.

Un tube anonyme est un conduit virtuel temporaire qui permet à deux programmes de s'échanger des données. Il fonctionne comme un tunnel à sens unique : ce qui est envoyé par un programme à une extrémité ressort fidèlement à l'autre bout pour le second programme, sans jamais être enregistré dans un fichier.

Étymologie

Traduction directe de l'anglais anonymous pipe. Le terme « tube » évoque le transport fluide et linéaire des données, tandis qu'« anonyme » souligne que ce mécanisme n'a pas d'existence physique (pas de nom de fichier) sur le disque dur, contrairement aux « tubes nommés ».

Exemples d'usage

  • L'utilisation du symbole | (la barre verticale) dans un terminal Linux ou macOS pour filtrer un résultat, comme ps aux | grep chrome.
  • Un logiciel de montage vidéo qui envoie les images brutes à un encodeur via un flux interne sans créer de fichier intermédiaire.

Cas d'usage

Il intervient majoritairement dans les systèmes d'exploitation (Unix, Linux, Windows) pour la communication entre processus (IPC). On l'utilise pour connecter la sortie d'un programme à l'entrée d'un autre, facilitant l'automatisation de tâches complexes par l'enchaînement de petits outils simples.

Bonnes pratiques

En programmation, il est indispensable de fermer les descripteurs de fichiers non utilisés (le côté lecture pour celui qui écrit, et inversement) pour éviter que les programmes ne restent « suspendus » indéfiniment en attendant une fin de transmission qui ne vient jamais.

Synonymes

pipe tube non nommé

Antonymes

tube nommé FIFO (nommé)

Conseil

Si vous débutez sous Linux, pratiquez l'usage du caractère |. C'est le meilleur moyen de comprendre la puissance des tubes anonymes : vous pouvez transformer n'importe quel texte en le faisant passer à travers une série de petits outils spécialisés.

Questions fréquentes

Pourquoi dit-on qu'il est anonyme ?

Parce qu'il n'existe que dans la mémoire vive de l'ordinateur. Il n'a pas de nom de fichier dans un dossier, ce qui le rend invisible pour les autres programmes non liés.

Peut-on l'utiliser entre deux ordinateurs ?

Non, le tube anonyme est strictement réservé à la communication entre programmes tournant sur la même machine.

Que se passe-t-il si le tube est plein ?

Le programme qui envoie les données s'arrête temporairement (il est bloqué) jusqu'à ce que l'autre programme lise une partie des données et libère de la place.