ioctl — контрольное устройство
конспект
#включают
int ioctl (int d, ИНТ запрос, …);
Описание
IOCTL Функция манипулирует базовыми параметрами устройства специальных файлов. В частности, многие рабочие характеристики символьных специальных файлов (например, терминалов) могут управляться с помощью IOCTL Запросы. Аргумент d должен быть дескриптором открытого файла.
Второй аргумент — это зависимый от устройства код запроса. Третий аргумент — нетипизированный указатель на память. Это традиционно символ *Арг (из дней до пустота * был действительным C), и будет так назван для этого обсуждения.
Запрос ioctl закодировал в нем, является ли аргумент входным параметром или выходным параметром, и размер аргумента argp в байтах. Макросы и определения, используемые при указании запроса ioctl, находятся в файле.
Возвращаемое значение
Обычно в случае успеха возвращается ноль. Несколько ioctl используют возвращаемое значение в качестве выходного параметра и возвращают неотрицательное значение в случае успеха. В случае ошибки возвращается -1 и значение errno устанавливается соответствующим образом.
ошибки
EBADF
d не является допустимым дескриптором.
EFAULT
argp ссылается на недоступную область памяти.
ENOTTY
d не связано с символом специального устройства.
ENOTTY
Указанный запрос не относится к виду объекта, на который ссылается дескриптор.
EINVAL
Запрос или argp недействительны.
В соответствии с
Нет единого стандарта. Аргументы, возвраты и семантика IOCTL(2) варьируются в зависимости от рассматриваемого драйвера устройства (вызов используется как универсальный для операций, которые не совсем соответствуют модели потокового ввода-вывода Unix). IOCTL вызов функции появился в версии 7 ATT Unix.