Создание неименованного программного канала
pipe(fdptr);
fdptr
- это указатель массива из двух целых чисел для размещения дескриптора
для чтения из программного канала (с помощью read)
и записи в программный канал (с помощью write)
обычные дескрипторы файлов
два элемента таблицы открытых файлов процесса
Создание именованных программных каналов
(или получение доступа к существующим) Обычный системный вызов open
если канал открывается на запись, и ни один процесс
не открыл его для чтения, то процесс блокируется до тех пор, пока
некоторый процесс не откроет этот канал для чтения
аналогично обрабатывается открытие для чтения
имеется флаг NO_DELAY
Запись и чтение: read
и write
при записи данные помещаются в начало канала
при чтении выбираются из конца канала
возможны откладывания процессов
Окончание работы процесса: close
при выполнении последнего закрытия канала по
записи все процессы, ожидающие чтения из программного канала,
активизируются с возвратом кода ошибки из системного вызова