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)