\chapter{I/O control} \label{chap:ioctl} \index{ioctl} Un des paradigmes les plus connus à propos des systèmes de la famille Unix est : \textsf{Tout est vu comme un fichier}. C'est souvent vrai, mais parfois ce n'est pas suffisant. Prenons rapidement un exemple, le baton de joie\index{joystick} dans Linux. \begin{verbatim} int joy_fd; char joy_name[128]; joy_fd = open(joy_device , O_RDONLY); if (ioctl(joy_fd, JSIOCGNAME(sizeof(joy_name)), joy_name) < 0) strncpy(joy_name, "Unknown", sizeof(joy_name)); fprintf(stderr, "Name: \"%s\"\n", joy_name); \end{verbatim} La macro \texttt{JSIOCGNAME} étant définie dans le fichier \texttt{/usr/include/linux/joystick.h} comme \texttt{\_IOC(\_IOC\_READ, 'j', 0x13, len)}. Bon, OK, j'aurais pu choisir un exemple plus simple, mais vous avez capté le principe\dots % ========================================================= \vspace{5em} Ailleurs dans ce document : Ports série (p. \pageref{rs232}) % =========================================================