Книга: Разработка приложений в среде Linux. Второе издание
11.2.8. Прочие операции
11.2.8. Прочие операции
Файловая модель Linux достаточно хорошо поддерживает стандартизацию большинства файловых операций через обобщенные функции наподобие read()
и write()
(например, запись в программный канал выполняется так же, как запись в файл на диске). Однако некоторые устройства поддерживают операции, которые плохо моделируются такой абстракцией. Например, терминальные устройства, представленные как устройства символьные, нуждаются в представлении метода изменения скорости терминала, и приводы CD-ROM, представленные как блочные устройства, нуждаются в том, чтобы знать, кода они должны воспроизводить аудиодорожки, чтобы помочь увеличить производительность работы программистов.
Все эти разнообразные операции доступны через единственный системный вызов — ioctl()
(сокращение для "I/O control" — управление вводом-выводом), прототип которого показан ниже.
#include <sys/ioctl.h>
int ioctl(int fd, int request, ...);
Хотя часто он применяется следующим образом:
int ioctl (int fd, int request, void *arg);
Всякий раз когда используется ioctl()
, его первый аргумент — это файл, с которым выполняются манипуляции, а второй аргумент указывает операцию, которая должна быть выполнена. Последний аргумент обычно представляет собой указатель на нечто, но на что именно, а так же точная семантика возвращаемого кода зависит от типа файла fd
и типа запрошенной операции. Для некоторых операций arg
— длинное целое вместо указателя; в этих случаях обычно применяется приведение типов. В нашей книге есть множество примеров применения ioctl()
, и вам нет нужды заботиться об ioctl()
до тех пор, пока вы не доберетесь до них.
- 11.2. Основные файловые операции
- Глава 11. Регламентные операции и финансовый результат
- Что делать, если при установке принтера появляется сообщение Невозможно завершение операции. Подсистема печати недоступн...
- Операции с множествами узлов
- 4. Null-значения и логические операции
- 1. Операции объединения, пересечения, разности
- 2. Операции декартового произведения и естественного соединения
- 5. Производные операции
- 2. Унарные операции на языке структурированных запросов
- 3. Бинарные операции на языке структурированных запросов
- 5. Операции внутреннего соединения.
- ГЛАВА 5. СИСТЕМНЫЕ ОПЕРАЦИИ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ