<Предыдущая | Содержание: | Следующая>
Использование именованных каналов
Чтобы продемонстрировать, как работает именованный канал, нам понадобятся два окна терминала (или, как вариант, две виртуальные консоли). В первом терминале мы вводим простую команду и перенаправляем ее вывод в именованный канал:
[я @ linuxbox ~] $ ls -l> pipe1
[я @ linuxbox ~] $ ls -l> pipe1
После того, как мы нажмем Enter клавиша, команда будет зависать. Это связано с тем, что данные с другого конца канала еще не поступают. Когда это происходит, говорят, что труба заблокировал. Это условие исчезнет, как только мы подключим процесс к другому концу, и он начнет считывать ввод из канала. Используя второе окно терминала, вводим эту команду:
[я @ linuxbox ~] $ кошка <pipe1
[я @ linuxbox ~] $ кошка <pipe1
и список каталогов, созданный из первого окна терминала, появляется во втором терминале как вывод из кошка команда. ls Команда в первом терминале успешно завершается, если он больше не заблокирован.