Les systèmes d'exploitation Unix prennent en charge deux principaux types de canaux :
1. Tubes anonymes (ou tubes sans nom) : Ceux-ci sont unidirectionnels, ce qui signifie que les données circulent uniquement dans une seule direction d'un processus parent vers un processus enfant (ou vice versa). Ils sont créés à l'aide de l'appel système `pipe()`. Ils n’existent que pendant la durée des processus qui les utilisent; ils ne sont pas accessibles par d'autres processus.
2. Canaux nommés (ou FIFO) : Ceux-ci sont également unidirectionnels, mais ils sont créés sur le système de fichiers à l'aide de l'appel système `mkfifo()` et reçoivent un nom. Cela permet à des processus non liés de communiquer entre eux de manière asynchrone, même s'ils ne sont pas liés par filiation. Un processus peut ouvrir un canal nommé en lecture ou en écriture, indépendamment des autres processus utilisant le même canal nommé. Ils persistent jusqu'à ce qu'ils soient explicitement supprimés.
|