Книга: Основы программирования в Linux

Что такое канал?

Что такое канал?

Мы применяем термин "канал" для обозначения соединения потока данных одного процесса с другим. Обычно вы присоединяете или связываете каналом вывод одного процесса с вводом другого.

Большинство пользователей Linux уже знакомы с идеей конвейера, связывающего вместе команды оболочки так, что вывод одного процесса поставляет данные прямо во ввод другого. В случае команд оболочки это делается с помощью символа конвейера или канала, соединяющего команды следующим образом:

cmd1 | cmd2

Командная оболочка организует стандартный ввод и вывод двух команд так, что:

? стандартный ввод cmd1 поступает с клавиатуры терминала;

? стандартный вывод cmd1 поставляется cmd2 как ее стандартный ввод;

? стандартный вывод cmd2 подсоединен к экрану терминала.

На самом деле командная оболочка заново соединила потоки стандартных ввода и вывода так, что потоки данных проходят с клавиатурного ввода через две команды и выводятся на экран. На рис. 13.1 приведено визуальное представление этого процесса.


Рис. 13.1 

В этой главе вы увидите, как достичь этого эффекта в программе и как можно использовать каналы для связи многих процессов, что позволит создать простую клиент-серверную систему.

Оглавление книги


Генерация: 0.117. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз