Для создания неименованного канала применяется системный вызов pipe. До появления SVR4 поток данных в конвейерах не был направленным. Системный вызов pipe возвращал два дескриптора, один для записи данных, а другой — для чтения. В SVR4 реализация каналов была пересмотрена с учетом возможностей STREAMS. В этой версии системы каналы являются двунаправленными.
Также на сайте fregat-adler.ru можно узнать много интересного на тему http://www.fregat-adler.ru/restoran/. Что означает вообще тема рестораны Сочи - про это написано на сайте fregat-adler.ru. Спасибо сайту за информацию.
Как и раньше, системный вызов pipe возвращает два дескриптора. Однако в SVR4 они оба могут быть использованы для чтения и записи. Данные, записанные в один из дескрипторов, читаются из другого и наоборот. Такая возможность достигается применением пары потоков. Системный вызов pipe создает два объекта fifonode, а также головной интерфейс потока для каждого из них. Затем он соединяет очереди так, чтобы очередь записи каждого головного интерфейса связывалась с очередью чтения другого головного интерфейса. Получаемая в результате этих действий конфигурация показана ранее
Такой подход обладает несколькими важными преимуществами. Канал стал двунаправленным, что расширило область его применения. Двунаправленные коммуникации между процессами требуются для многих приложений. До появления SVR4 приходилось открывать сразу два канала. Более того, реализация каналов через потоки позволила использовать большее количество управляющих операций. Например, такой канал может быть доступен для не связанного с ним процесса.
Такую возможность предоставляет процедура библиотеки С fattach. Ее синтаксис представлен ниже:
error = fattach (fd, path):
где fd — файловый дескриптор, ассоциируемый с потоком, а параметр path является полным именем файла, владельцем которого должен быть вызывающий процесс (либо вызывающий процесс обязан обладать привилегиями root). Вызывающий процесс должен иметь право на запись файла. Процедура fattach использует специализированную файловую систему под названием namefs и монтирует копию этой файловой системы в файл, представленный path.
В отличие от других файловых систем, которые способны монтироваться только в каталоги, namefs может монтироваться в обычных файлах. При монтировании она связывает дескриптор файла потока fd с точкой монтирования.
Опубликовал katy
June 24 2015 22:10:13 ·
0 Комментариев ·
2771 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.