Unix Man (Справочное руководство)


TIRDWR(7)


TIRDWR(7)

НАЗВАНИЕ


tirdwr - модуль псевдоустройства интерфейса ввода/вывода для Транспортного Интерфейса

ОПИСАНИЕ


Tirdwr - это модуль псевдоустройства, обеспечивающий дополнительный интерфейс к транспортному протоколу, выполняющему функции Транспортного Интерфейса библиотеки сетевых услуг. Этот дополнительный интерфейс дает возможность пользователю взаимодействовать с транспортным протоколом с помощью системных вызовов и . Системные вызовы и при этом можно использовать только для обмена данными между пользователем и потоком.

Модуль tirdwr должен использоваться в потоке, который завершается модулем транспортного протокола, обеспечивающим Транспортный Интерфейс [см. I_PUSH в ]. После того, как модуль tirdwr помещается в поток, функции Транспортного Интерфейса становятся недоступными, попытка обращения к какой-нибудь функции Транспортного Интерфейса вызывает ошибку в потоке, при этом все последующие обращения к потоку заканчиваются неудачей, а переменной errno присваивается значение EPROTO.

Ниже описываются действия, которые выполняет модуль tirdwr, когда его помещают в поток [см. I_PUSH в ], удаляют из потока [см. I_POP в ], а также при прохождении через него данных.

Помещение модуля в поток Когда модуль tirdwr помещается в поток, он выполняет проверку всех существующих сообщений для данного пользователя, чтобы гарантировать их полноту и целостность. Игнорируются все сообщения, влияющие на управление процессами, например, сообщения, генерирующие сигналы процессам, связанным с потоком. Если обнаруживается какое-нибудь другое сообщение, I_PUSH завершается неудачей, а переменной errno присваивается значение EPROTO. Запись в поток Модуль tirdwr выполняет следующие действия над данными, записываемыми в поток с помощью системного вызова :

  1. Все сообщения, имеющие область данных нулевой длины, удаляются из потока и вниз не передаются.
  2. Все остальные сообщения, за исключением тех, которые содержат управляющую область [см. и ], без изменений передаются вниз соседнему модулю потока.
  3. Все сообщения, имеющие управляющую область, вызывают ошибку в потоке, при этом все последующие обращения к потоку заканчиваются неудачей, а переменной errno присваивается значение EPROTO.




Начало  Назад  Вперед



Книжный магазин