\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})

% =========================================================
