Manpages

NOM

ioctl - Contrôler les périphériques

SYNOPSIS

#include <sys/ioctl.h>

int ioctl(int fd, unsigned long request, ...);

DESCRIPTION

The ioctl() system call manipulates the underlying device parameters of special files. In particular, many operating characteristics of character special files (e.g., terminals) may be controlled with ioctl() requests. The argument fd must be an open file descriptor.

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 DE RETOUR

En général, 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

fd n’est pas un descripteur de fichier valable.

EFAULT

argp pointe en dehors de l’espace d’adressage valide.

EINVAL

La requête ou l’argument argp n’est pas valide.

ENOTTY

fd is not associated with a character special device.

ENOTTY

The specified request does not apply to the kind of object that the file descriptor fd references.

CONFORMITÉ

No single standard. Arguments, returns, and semantics of ioctl() vary according to the device driver in question (the call is used as a catch-all for operations that don’t cleanly fit the UNIX stream I/O model). See ioctl_list(2) for a list of many of the known ioctl() calls. The ioctl() system call appeared in Version 7 AT&T UNIX.

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 le drapeau O_NONBLOCK.

VOIR AUSSI

execve(2), fcntl(2), ioctl_console(2), ioctl_fat(2), ioctl_ficlonerange(2), ioctl_fideduperange(2), ioctl_getfsmap(2), ioctl_iflags(2), ioctl_list(2), ioctl_ns(2), ioctl_tty(2), ioctl_userfaultfd(2), open(2), sd(4), tty(4)

COLOPHON

Cette page fait partie de la publication 5.05 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l’adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <http://www.blaess.fr/christophe/>;, Stéphan Rafin <stephan.rafin [AT] laposte.net>, Thierry Vignaud <tvignaud [AT] mandriva.com>, François Micaux, Alain Portal <aportal [AT] univ-montp2.fr>, Jean-Philippe Guérard <fevrier [AT] tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon [AT] wanadoo.fr>, Julien Cristau <jcristau [AT] debian.org>, Thomas Huriaux <thomas.huriaux [AT] gmail.com>, Nicolas François <nicolas.francois [AT] centraliens.net>, Florentin Duneau <fduneau [AT] gmail.com>, Simon Paillard <simon.paillard [AT] resel.fr>, Denis Barbier <barbier [AT] debian.org> et David Prévot <david [AT] tilapin.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à <debian-l10n-french [AT] lists.org>.