Глава 17 Операции функции ioctl

Глава 17

Операции функции ioctl

17.1. Введение

Функция ioctl традиционно являлась системным интерфейсом, используемым для всего, что не входило в какую-либо другую четко определенную категорию. POSIX постепенно избавляется от функции ioctl, создавая заменяющие ее функции-обертки и стандартизуя их функциональность. Например, доступ к интерфейсу терминала Unix традиционно осуществлялся с помощью функции ioctl, но в POSIX были созданы 12 новых функций для терминалов: tcgetattr для получения атрибутов терминала, tcflush для опустошения буферов ввода или вывода, и т.д. Аналогичным образом POSIX заменяет одну сетевую функцию ioctl: новая функция sockatmark (см. раздел 24.3) заменяет команду SIOCATMARK ioctl. Тем не менее прочие сетевые команды ioctl остаются не стандартизованными и могут использоваться, например, для получения информации об интерфейсе и обращения к таблице маршрутизации и кэшу ARP (Address Resolution Protocol — протокол разрешения адресов).

В этой главе представлен обзор команд функции ioctl, имеющих отношение к сетевому программированию, многие из которых зависят от реализации. Кроме того, некоторые реализации, включая системы, происходящие от 4.4BSD и Solaris 2.6, используют сокеты домена AF_ROUTE (маршрутизирующие сокеты) для выполнения многих из этих операций. Маршрутизирующие сокеты мы рассматриваем в главе 18.

Обычно сетевые программы (как правило, серверы) используют функцию ioctl для получения информации обо всех интерфейсах узла при запуске программы, с тем чтобы узнать адрес интерфейса, выяснить, поддерживает ли интерфейс широковещательную передачу, многоадресную передачу и т.д. Для возвращения этой информации мы разработали нашу собственную функцию. В этой главе мы представляем ее реализацию с применением функции ioctl, а в главе 18 — другую реализацию, использующую маршрутизирующие сокеты.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

6.2 Функции Операции

Из книги C++ автора Хилл Мюррей

6.2 Функции Операции Можно описывать функции, определяющие значения следующих операций:+ – * / % ^ amp; ! ~ ! = « » += -= *= /= %= ^= amp;= != «„ “» »»= «„= == != «= “= amp; amp; !! ++ – [] () new deleteПоследние четыре – это индексирование (#6.7), вызов функции (#6.8), выделение свободной памяти и освобождение


10.1.2.5 Ioctl

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

10.1.2.5 Ioctl Системная функция ioctl является обобщением специфичных для терминала функций stty (задать установки терминала) и gtty (получить установки терминала), имевшихся в ранних версиях системы UNIX. Она выступает в качестве общей точки входа для всех связанных с типом


Глава 9 Операции с текстом

Из книги ArchiCAD 11 автора Днепров Александр Г

Глава 9 Операции с текстом • Настройка параметров текста• Создание стилей• Настройка автотекста• Ввод и редактирование текста• Редактирование текстового блока• Поиск и замена символов• Проверка орфографииЛюбое серьезное проектирование завершается выпуском


Глава 8 Операции выделения

Из книги Photoshop. Мультимедийный курс автора Мединов Олег

Глава 8 Операции выделения При совершении различных операций над фрагментами изображения эти фрагменты нужно выделять. Так, например, если вы хотите применить эффект или изменить яркость только для отдельного фрагмента картинки, этот фрагмент необходимо выделить. Иначе


Глава 16 Логические операции

Из книги Adobe Photoshop CS3 автора Завгородний Владимир

Глава 16 Логические операции • Понятие логических операций• Использование логических операцийРаботая с выделением, с которым мы познакомились в прошлой главе, можно использовать логические операции – это позволит в некоторых случаях упростить создание выделения или


20.3.7. Вызовы ioctl(2) и fcntl(2) являются препятствиями

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

20.3.7. Вызовы ioctl(2) и fcntl(2) являются препятствиями Механизмы ioctl(2) и fcntl(2) обеспечивают способ написания перехватчиков (hooks) в драйверах устройств. Первоначальным историческим использованием ioctl(2) была установка параметров, таких как скорость передачи и количество


20.3.7. Вызовы ioctl(2) и fcntl(2) являются препятствиями

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

20.3.7. Вызовы ioctl(2) и fcntl(2) являются препятствиями Механизмы ioctl(2) и fcntl(2) обеспечивают способ написания перехватчиков (hooks) в драйверах устройств. Первоначальным историческим использованием ioctl(2) была установка параметров, таких как скорость передачи и количество


Глава 14 Операции с каталогами

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Глава 14 Операции с каталогами Как и во многих других операционных системах, для организации файлов в Linux используются каталоги. Каталоги (представляющие собой особые типы файлов, которые содержат списки имен файлов) состоят из файлов, а также других каталогов, образуя


Глава 23 Операции с денежными средствами

Из книги Компьютер для бухгалтера автора Филатова Виолетта

Глава 23 Операции с денежными средствами В этой главе мы узнаем, как с помощью документов организовать учет операций с денежными средствами. Денежные расчеты производятся либо в виде безналичных платежей, либо наличными.• Учет безналичных расчетов• Учет кассовых


ГЛАВА 4. Основные операции.

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

ГЛАВА 4. Основные операции. Теперь у вас есть установленный сервер Firebird, что дальше? Эта глава быстро обучит вас основам Firebird. Запуск Firebird на Linux/UNIX Суперсервер Каталог инсталляции по умолчанию /opt/firebird. В каталоге /bin находится в двоичном формате сервер Firebird fbserver (ibserver для


Глава 3 Простейшие операции с изображениями

Из книги Photoshop CS4 автора Жвалевский Андрей Валентинович

Глава 3 Простейшие операции с изображениями • Как открыть• Как обрезать и повернуть• Как напечатать• Как сохранить• Жизнь после PhotoshopРабота с файлами в Photoshop организована точно так же, как в большинстве Windows-программ. Поэтому, если вы часто использовали хотя бы Microsoft Word,


6.7. Функция ioctl()

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

6.7. Функция ioctl() Системный вызов ioctl() — это универсальное средство управления аппаратными устройствами. Первым аргументом функции является дескриптор файла того устройства, которым требуется управлять. Второй аргумент — это код запроса, обозначающего выполняемую


17.2. Функция ioctl

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

17.2. Функция ioctl Эта функция работает с открытым файлом, дескриптор которого передается через аргумент fd.#include <unistd.h>int ioctl(int fd, int request, ... /* void *arg */ );Возвращает: 0 в случае успешного выполнения, -1 в случае ошибкиТретий аргумент всегда является указателем, но тип указателя


18.4. Операции функции sysctl

Из книги автора

18.4. Операции функции sysctl Маршрутизирующие сокеты нужны нам главным образом для проверки таблицы маршрутизации и списка интерфейсов при помощи функции sysctl. В то время как создание маршрутизирующего сокета (символьного сокета в домене AF_ROUTE) требует прав


31.5. Функция ioctl

Из книги автора

31.5. Функция ioctl Говоря о потоках, мы снова возвращаемся к функции ioctl, которая уже была описана в главе 17.#include <stropts.h>int ioctl(int fd, int request, ... /* void *arg */ );Возвращает: 0 в случае успешного выполнения, -1 в случае ошибкиЕдинственным изменением относительно прототипа функции,