Іменований канал

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

У програмуванні іменований канал або іменований конвеєр (англ. named pipe) — розширення поняття конвеєр в Unix и подібних ОС, один з методів взаємодії між процесами.

На відміну від неіменованих каналів, доступ до яких мають лише процеси, що породжені від одного спільного, доступ до іменованих каналів мають всі процеси, що знають ім'я цього каналу.

Канал можна створити двома різними командами:

mknod pipe1 p
mkfifo pipe1

Де pipe1 - ім'я каналу. Він з'явиться в лістингу каталога в якому був створений:

ls -l
...
prw-r--r-- 1 user group          0 2010-11-17 01:13 pipe1
...

Варто зауважити що його розмір - 0 байт. Він взагалі не з'являється на диску.

Тепер можна створити процес що пише в канал:

ls > pipe1

Цей процес буде "висіти", поки канал не прочитає передану йому інформацію, а канал сам її читати не може. Тому ми переходимо в інший термінал, і створюємо якийсь процес що читає з каналу, наприклад

cat pipe1

Видаляти канали можна як і звичайні файли:

rm pipe1

Дивись також[ред.ред. код]

Посилання[ред.ред. код]

  1. Сергей Дунаев Unix System V. Release 4.2 Общее руководство. — Диалог-Мифи. — ISBN 5-86404-059-2.