Канал – это логическое устройство ввода-вывода с последовательным побайтным доступом и буфером данных, организованным по принципу FIFO.

Как и обычное устройство, каналы управляются соответствующим менеджером. Так как каналы имитируются программно, и при этом используется только ОЗУ для организации буфера, то драйвер устройства не нужен. Для этого есть нуль драйвер.

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

Чтение из пустого канала и запись в полный канал не допустимо.

Различают два типа каналов: именованный и неименованный.

В системе может быть создан только один неименованный канал и один путь доступа к нему, и произвольное число именованных каналов и произвольное число путей доступа к ним.

Программа может создать новый канал при помощи стандартных си-функций: create, открыть существующий канал с помощью open,читать и записывать данные read и write, close.

По умолчанию при создании канала ему определяется объем 90 байтов, длина кратна 16 байтам.

Системная функция _gs_rgy( ) – позволяет определить количество данных уже находящихся в канале, ее использует процесс поставщик для контроля за заполнением буфера.

Приемнику эта функция может быть полезна для приема информации, которую реально можно прочитать из канала.

С помощью системной функции _ss_ssig( ) каналу дается указание на посылку данного сигнала после записи данных в канал.

 

Бесплатный хостинг uCoz