mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

IOCTL(2)                                               IOCTL(2)

НАЗВАНИЕ 
        ioctl - управление устройствами

СИНТАКСИС 
        ioctl (fildes, command, arg)
        int fildes, command;

ОПИСАНИЕ 
        Системный  вызов  ioctl выполняет различные управляющие
        действия над обычными устройствами и  псевдоустройства-
        ми.  Для файлов, не являющихся псевдоустройствами, дей-
        ствия, которые выполняет этот системный вызов,  зависят
        от  устройства.  Аргументы  command  и arg передаются в
        файл, ассоциированный с дескриптором fildes, и  интерп-
        ретируются драйвером устройства. Подобный способ управ-
        ления  для обычных устройств используется редко; основ-
        ные операции ввода/вывода выполняются с помощью систем-
        ных вызовов read(2) и write(2).

        Действия  над псевдоустройствами, выполняемые с помощью
        системного вызова ioctl, описаны в streamio(7).

        Аргумент fildes - это открытый дескриптор файла, являю-
        щегося устройством. Аргумент command задает выполняемые
        действия и зависит от устройства, с которым ведется ра-
        бота. Наконец, arg  задает  дополнительную  информацию,
        которая  может  потребоваться  для выполнения указанных
        действий. Тип аргумента arg зависит от конкретного  уп-
        равляющего  действия и является либо целым, либо указа-
        телем на специфичную для устройства структуру.

        Отметим, что существуют некоторые общие действия, кото-
        рые выполняются драйверами различных устройств,  напри-
        мер общий интерфейс с терминалом [см. termio(7)].

        Системный вызов ioctl завершается неудачей  для  файлов
        любого  типа,  если выполнено хотя бы одно из следующих
        условий:

        [EBADF]     Аргумент  fildes  не  является   корректным
                    дескриптором открытого файла.

        [ENOTTY]    Аргумент  fildes  не  связан с устройством,
                    драйвер которого  отрабатывает  управляющие
                    функции.

        [EINTR]     Во  время  выполнения системного вызова пе-
                    рехвачен сигнал.

        Системный вызов ioctl также завершается неудачей,  если
        драйвер  устройства  обнаружит  ошибку.  В  этом случае
        ошибка возвращается системным  вызовом  без  изменений.
        Конкретный  драйвер может вырабатывать не все ошибки из
        перечисленных ниже:

        [EFAULT]    Действие  command  требует обмена данными с
                    буфером, указанным с помощью аргумента arg,
                    но сам буфер или  его  часть  находятся  за
                    пределами  отведенного  процессу  адресного
                    пространства.

        [EINVAL]    Значения аргументов command или arg  некор-
                    ректны для данного устройства.

        [EIO]       Обнаружена ошибка ввода/вывода.

        [ENXIO]     Значения  аргументов  command  или arg кор-
                    ректны для данного драйвера, но над  данным
                    устройством  указанный запрос не может быть
                    выполнен.

        [ENOLINK]   Аргумент fildes является дескриптором файла
                    на  удаленном компьютере, связи с которым в
                    данный момент нет.

        Ошибки псевдоустройств описаны в streamio(7).

СМ. ТАКЖЕ 
        streamio(7), termio(7) в Справочнике администратора.

ДИАГНОСТИКА 
        При успешном завершении результат зависит от  управляю-
        щего  действия,  но  должен  быть неотрицательным целым
        числом. В случае ошибки возвращается -1,  а  переменной
        errno присваивается код ошибки.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк