Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (11 – Буферизация ввода/вывода, часть 3)

предыдущая часть ««»» следующая часть

Еще один способ устранения проблем буферизации stdio отстоит в использовании вызовов функций sysread и syswrite. Эти вызовы обходят библиотеку stdio и преобразуются непосредственно в вызовы функций ввода-вывода операци­онной системы. Важным преимуществом этих вызовов является то, что они хорошо взаимодействуют с другими вызовами функций ввода-вывода низкого уровня, такими как вызов функции select с четырьмя параметрами, а также могут применяться в таких сложных методах, как неблокирующий ввод-вывод. Поведение Perl при этом, как уже отмечалось ранее, не зависит от платформы или конфигурации хостинга VPS/VDS , где размещено приложение.

Еще одним следствием того, что функции sys* обходят библиотеку stdio, яв­ляется различие в поведении между read и sysread при получении ими запроса на выборку большего фрагмента данных, чем фактически имеется. Функция read (блокируется на неопределенное время, ожидая поступления именно того объема данных, который был затребован. Единственным исключением являемся то, когда дескриптор файла встречает конец файла перед тем, как будет удовлетворен запрос на весь объем данных; в этом случае функция read возвращает все, что находится перед концом файла. В отличие от этого, функция sysread может вернуть частично считанные данные. Если она не может сразу же прочесть весь объем затребованных данных, она возвращает доступные данные. Если нет доступных данных, функция sysread блокируется до тех пор, пока не сможет вернуть хотя бы один байт. В силу этого данная функция незаменима при использовании, в сетевой связи, где данные часто поступают в виде фрагментов непредсказуемого размера. Итак, можно сделать вывод, что для многих сетевых приложений лучше всего использовать функции sysread и syswrite.



2013-09-18 16:56:58

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония