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


TIRDWR(7) - часть 2


Чтение из потока Модуль tirdwr выполняет следующие действия над данными, поступающими от модуля транспортного протокола:

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

    Удаление модуля из потока Когда модуль tirdwr удаляется из потока, а также при закрытии потока выполняются следующие действия:

    1. Если ранее было получено сообщение, свидетельствующее о нормальном завершении соединения, на удаленную сторону соединения на транспортном уровне посылается сообщение о нормальном завершении соединения.
    2. Если ранее было получено сообщение, свидетельствующее об аварийном завершении соединения, не делается ничего.
    3. Если сообщений о завершении соединения получено не было, на удаленную сторону соединения на транспортном уровне посылается сообщение об аварийном завершении соединения.
    4. Если в потоке обнаружена ошибка и ранее было получено сообщение, свидетельствующее об аварийном завершении соединения, на удаленную сторону соединения на транспортном уровне посылается сообщение об аварийном завершении соединения.

    СМ. ТАКЖЕ


    , .

    , , , , , в Справочнике программиста.




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