Програмні канали

Інша часто використовуваний засіб обміну даними - програмний канал (pipe; іноді перекладається як «трубопровід»). У цьому випадку для виконання обміну використовуються не команди читання / запису в пам'ять, а функції читання / запису в файл. Програмний канал «прикидається файлом», для роботи з ним використовуються ті ж операції, що для послідовного доступу до файлу: відкриття, читання, запис, закриття. Проте джерелом читаних даних служить не файл на диску, а процес, що виконує запис «в інший кінець труби». Дані, записані одним процесом, але поки не прочитані іншим, зберігаються в системному буфері. Якщо ж процес намагається прочитати дані, які поки не записані іншим процесом, то процес-читач блокується до отримання даних.