Команда Linux / Unix: IOCTL

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.  

Ссылка на основную публикацию