Индустрия программирования

Программные каналы


Создание неименованного программного канала
pipe(fdptr);

  • fdptr
    - это указатель массива из двух целых чисел для размещения дескриптора
    для чтения из программного канала (с помощью read)
    и записи в программный канал (с помощью write)
  • обычные дескрипторы файлов
  • два элемента таблицы открытых файлов процесса

Создание именованных программных каналов
(или получение доступа к существующим)

Обычный системный вызов open



  • если канал открывается на запись, и ни один процесс
    не открыл его для чтения, то процесс блокируется до тех пор, пока
    некоторый процесс не откроет этот канал для чтения
  • аналогично обрабатывается открытие для чтения
  • имеется флаг NO_DELAY

Запись и чтение: read
и
write

  • при записи данные помещаются в начало канала
  • при чтении выбираются из конца канала
  • возможны откладывания процессов

Окончание работы процесса: close

  • при выполнении последнего закрытия канала по
    записи все процессы, ожидающие чтения из программного канала,
    активизируются с возвратом кода ошибки из системного вызова




Содержание раздела