ioctl – dispositivo de control
Índice de contenidos
Sinopsis
#include
int ioctl(int d , int request , …);
Descripción
La función ioctl manipula los parámetros subyacentes del dispositivo de archivos especiales. En particular, muchas características operativas de archivos especiales de caracteres (por ejemplo, terminales) pueden controlarse con peticiones ioctl . El argumento d debe ser un descriptor de archivo abierto.
El segundo argumento es un código de solicitud dependiente del dispositivo. El tercer argumento es un puntero no mecanografiado a la memoria. Tradicionalmente char * argp (desde los días anteriores void * era válido C), y así se llamará en esta discusión.
Una petición ioctl request ha codificado en ella si el argumento es un parámetro in o out, y el tamaño del argumento argp en bytes. Las macros y definiciones utilizadas para especificar una petición ioctl se encuentran en el archivo .
Valor de retorno
Normalmente, en el éxito se devuelve cero. Unos pocos ioctls utilizan el valor de retorno como parámetro de salida y devuelven un valor no negativo sobre el éxito. En caso de error, se devuelve -1, y errno se establece adecuadamente.
Errores
EBADF
d no es un descriptor válido.
EFAULT
argp hace referencia a un área de memoria inaccesible.
ENOTTY
d no está asociado con un dispositivo especial de caracteres.
ENOTTY
La petición especificada no se aplica al tipo de objeto al que hace referencia el descriptor d.
EINVAL
Request o argp no es válido.
Conforme a
No existe una norma única. Los argumentos, las devoluciones y la semántica de ioctl (2) varían según el controlador de dispositivo en cuestión (la llamada se utiliza como un comodín para las operaciones que no se ajustan limpiamente al modelo de E/S de flujo Unix). La llamada de función ioctl apareció en la versión 7 de AT&T Unix.