Шрифт:
6.12. Резюме
В Unix существует пять различных моделей ввода-вывода:
блокируемый ввод-вывод;
неблокируемый ввод-вывод;
мультиплексирование ввода-вывода;
управляемый сигналом ввод-вывод;
асинхронный ввод-вывод.
По умолчанию используется блокируемый ввод-вывод, и этот вариант встречается наиболее часто. Неблокируемый ввод-вывод и управляемый сигналом ввод-вывод мы рассмотрим в последующих главах. В этой главе мы рассмотрели мультиплексирование ввода-вывода. Асинхронный ввод-вывод определяется в стандарте POSIX, но поддерживающих его реализаций не так много.
Наиболее часто используемой функцией для мультиплексирования ввода- вывода является функция
Используя эхо-клиент в пакетном режиме с помощью функции
POSIX определяет функцию
Функция
Упражнения
1. Мы говорили, что набор дескрипторов можно присвоить другому набору дескрипторов, используя оператор присваивания языка С. Как это сделать, если набор дескрипторов является массивом целых чисел? ( Подсказка: посмотрите на свой системный заголовочный файл
2. Описывая в разделе 6.3 условия, при которых функция
3. Что произойдет с программой из листинга 6.1, если мы поставим слово
4. В листинге 6.3 добавьте необходимый код, чтобы позволить серверу использовать максимальное число дескрипторов, допустимое ядром ( Подсказка: изучите функцию
5. Посмотрите, что происходит, если в качестве второго аргумента функции