IOCTL(2)

NOMBRE
ioctl - controlar dispositivo

SINOPSIS
#include <sys/ioctl.h>

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

DESCRIPCIÓN
La función ioctl manipula los parámetros subyacentes de ficheros especiales. En particular, muchas características operacionales de los ficheros especiales de caracteres (verbigracia las terminales) pueden controlarse con llamadas a ioctl. El argumento d debe ser un descriptor de fichero abierto.

El segundo argumento es un código de solicitud que depende del dispositivo. El tercer argumento es un puntero a memoria sin tipo. Es tradicionalmente char *argp (desde los días antes de que void * se considerara código C válido), y así se le llamará en este documento.

Una peticion de ioctl tiene codificada en sí misma si el argumento es un parámetro de entrada o de salida, y el tamaño del argumento argp en bytes. En el fichero de cabecera <sys/ioctl.h> se definen macros empleadas al especificar una peticion de ioctl.

VALOR DEVUELTO
Normalmente, se devuelve cero en caso de éxito. Unos pocos ioctls usan el valor de retorno como un parámetro de salida y devuelven un valor no negativo en caso de éxito. En caso de error, se devuelve -1, y se pone en errno un valor apropiado.

ERRORES

EBADF
    d no es un descriptor válido.

EFAULT
    argp referencia a una zona de memoria inaccesible.

ENOTTY
    d no está asociado con un dispositivo especial de caracteres.

ENOTTY
    La petición especificada no se aplica a la clase de objeto que referencia el descriptor d.

EINVAL
    Peticion o argp no es válido.

CONFORME A
Ningún estándar en particular. Los argumentos, valores devueltos y semántica de ioctl(2) varían según el controlador de dispositivo en cuestión (la llamada se usa como un recogedor para las operaciones que no encajen claramente en el modelo de flujos de E/S de Unix). Vea ioctl_list(2) para una lista de muchas de las llamadas conocidas a ioctl. La función ioctl apareció por primera vez en Unix de AT&T Versión 7.

VÉASE TAMBIÉN
execve(2), fcntl(2), ioctl_list(2), mt(4), sd(4), tty(4)