> Linux Reviews > man >

ioctl


  1. ioctl.2.man


1. ioctl.2.man

Manpage of IOCTL

IOCTL

Section: Руководство программиста Linux (2)
Updated: 2000-09-21
Index Return to Main Contents
 

ИМЯ

ioctl - управляет устройством  

ОБЗОР

#include <sys/ioctl.h>

int ioctl(int d, int request, ...);  

ОПИСАНИЕ

Функция ioctl() изменяет базовые параметры устройства, представленного в виде специального файла. В частности, через запросы ioctl() можно управлять многими оперативными характеристиками специальных символьных файлов (например, терминалов). В качестве аргумента d должен быть указан открытый файловый дескриптор.

Второй аргумент является кодом запроса, значение которого зависит от устройства. Третий аргумент является нетипизированным указателем на память. Обычно, это char *argp (было до тех пор, пока в C не появился vvoid *) и далее он будет называться именно так.

В значении request функции ioctl() кодируется информация является ли параметр входным или выходным и размер аргумента argp в байтах. Макросы и определения, используемые при указании в ioctl() запросах request, определены в файле <sys/ioctl.h>.  

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Обычно, при успешном завершении возвращается ноль. В некоторых ioctl() запросах возвращаемое значение считается выходным параметром и при успешном завершении возвращается неотрицательное значение. В случае ошибки возвращается -1 и значение errno устанавливается соответствующим образом.  

ОШИБКИ

EBADF
d не является правильным файловым дескриптором.
EFAULT
argp ссылается на недоступную область памяти.
EINVAL
Неправильное значение request или argp.
ENOTTY
Значение d не связано со специальным символьным устройством.
ENOTTY
Указанный запрос не применяется к типу объекта, на который ссылается дескриптор d.
 

СООТВЕТСТВИЕ СТАНДАРТАМ

Нет единого стандарта. Аргументы, возвращаемые значения и семантика ioctl() варьируются в соответствии с драйвером устройства (вызов, используемый как всеохватывающий, не полностью соответствует потоковой модели ввода/вывода в Unix). В ioctl_list(2) можно найти список многих известных вызовов ioctl(). Функция ioctl() появилась в AT&T Unix версии 7.  

ЗАМЕЧАНИЯ

Чтобы использовать этот вызов требуется открытый файловый дескриптор. Часто вызов open(2) приводит к нежелательным эффектам, которых в Linux можно избежать указав флаг O_NONBLOCK.  

СМОТРИТЕ ТАКЖЕ

execve(2), fcntl(2), ioctl_list(2), open(2), sd(4), tty(4)


 

Index

ИМЯ
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
СООТВЕТСТВИЕ СТАНДАРТАМ
ЗАМЕЧАНИЯ
СМОТРИТЕ ТАКЖЕ

This document was created by man2html using the manual pages.
Time: 17:41:23 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - SVENSKA - ja - nl - pl