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.
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)