Rechercher une page de manuel
ioctl
Langue: ru
Version: 2000-09-21 (fedora - 25/11/07)
Section: 2 (Appels système)
ИМЯ
ioctl - управление устройствамиОБЗОР
#include <sys/ioctl.h>int ioctl(int d, int request, ...);
ОПИСАНИЕ
Функция ioctl манипулирует базовыми параметрами устройств, представленных в виде специальных файлов. В частности, многими оперативными характеристиками специальных символьных файлов (например терминалов) можно управлять через ioctl запросы. В качестве аргумента d должен быть указан открытый файловый дескриптор.Второй аргумент является кодом запроса, который зависит от устройства. Третий аргумент является указателем на память, который не имеет типа. Традиционно это char *argp (до тех пор пока в C не появился void * ).
Ioctl запрос request кодирует в себе либо аргумент, который является параметром in либо аргумент, который является параметром out и кроме того размер аргумента argp в байтах. Макросы и определения, используемые в специальных ioctl запросах request находятся в файле <sys/ioctl.h>.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Обычно в случае успеха возвращается ноль. Некоторые ioctl используют возвращаемое значение как выходной параметр и возвращают в случае успеха неотрицательное значение. В случае ошибки возвращается -1 и значение errno устанавливается соответствующим образом.ОШИБКИ
- EBADF
- d не является правильным дескриптором.
- EFAULT
- argp ссылается на недоступную область памяти.
- ENOTTY
- d не ассоциирован со специальным символьным устройством.
- ENOTTY
- Указанный запрос не применим к данному классу объекта, на который ссылается дескриптор d .
- EINVAL
- Request или argp заданы неверно.
СООТВЕТСТВИЕ СТАНДАРТАМ
Нет единого стандарта. Аргументы, возвращаемые значения и семантики ioctl(2) варьируются в соответствии с драйвером устройства (вызов, используется как всеохватывающий, что не полностью соответствует потоковой модели ввода/вывода в Unix). Смотри ioctl_list(2) где дан список многих известных ioctl вызовов. Функция ioctl появилась в AT&T Unix версии 7.СМОТРИ ТАКЖЕ
execve(2), fcntl(2), ioctl_list(2), mt(4), sd(4), tty(4)ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2003Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre