IOCTL
Section : Manuel du programmeur Linux (
2)
Mise à jour de la version anglaise : 21 septembre 2000
Index
Menu principal
NOM
ioctl - Contrôler les périphériques
SYNOPSIS
#include <sys/ioctl.h>
int ioctl(int d, int requête, ...);
DESCRIPTION
La fonction
ioctl()
modifie le comportement des périphériques sous-jacents
des fichiers spéciaux.
En particulier, de nombreuses caractéristiques des fichiers spéciaux
en mode caractère (par exemple des terminaux) peuvent être contrôlées
avec des requêtes
ioctl().
L'argument
d
doit être un descripteur de fichier ouvert.
Le second argument est le code de la requête dépendant du périphérique.
Le troisième argument est un pointeur non typé.
Il est traditionnellement défini en
char *argp
(ceci date de l'époque avant que
void *
soit du C valide), et sera ainsi nommé dans le reste de cette page.
Une
requête
ioctl()
encapsule le fait que l'argument est un paramètre
d'entrée
ou de
sortie
ainsi que la taille de l'argument
argp
en octets.
Les macros et constantes symboliques décrivant les
requêtes
ioctl()
se trouvent dans le fichier
<sys/ioctl.h>.
VALEUR RENVOYÉE
En principe,
ioctl()
renvoie 0 s'il réussit, ou -1 s'il échoue.
Certaines requêtes
ioctl()
utilisent la valeur de retour comme paramètre de sortie, et renvoient
une valeur positive si elles réussissent (et -1 pour les erreurs).
En cas d'échec,
errno
contient le code d'erreur.
ERREURS
- EBADF
-
d
n'est pas un descripteur de fichier valide.
- EFAULT
-
argp
pointe en dehors de l'espace d'adressage valide.
- EINVAL
-
La
requête
ou l'argument
argp
n'est pas valide.
- ENOTTY
-
d
n'est pas associé avec un fichier spécial en mode caractère.
- ENOTTY
-
La requête spécifiée ne s'applique pas au type d'objet associé avec
le descripteur
d.
CONFORMITÉ
Pas de vrai standard.
Les arguments, les valeurs de retour, et la sémantique des
ioctl()
varient en fonction du périphérique concerné (cet appel système
est utilisé pour encapsuler les opérations qui ne se conforment pas bien
au modèle Unix des entrées/sorties par flux).
Voir
ioctl_list(2)
pour une liste des principaux appels
ioctl()
connus.
La fonction
ioctl()
est apparue dans l'Unix d'AT&T Version 7.
NOTES
Pour utiliser cet appel, on a besoin d'un descripteur de fichier ouvert.
Souvent, l'appel
open(2)
a des effets de bord non désirés, qui peuvent être évités sous Linux
en lui passant l'attribut
O_NONBLOCK.
VOIR AUSSI
execve(2),
fcntl(2),
ioctl_list(2),
open(2),
sd(4),
tty(4)
TRADUCTION
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 10 octobre 1996
et révisée le 23 juin 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 2 ioctl ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- CONFORMITÉ
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 23 juin 2008