3.9 Les fichiers spéciaux
Les fichiers spéciaux sont des programmes particuliers que l'on peut
mettre en oeuvre comme s'ils étaient des fichiers !
On peut en effet les lire et les écrire par les mêmes mécanismes.
C'est une des grandes forces d'UNIX
que d'avoir unifié les accès aux fichiers et aux périphériques.
Ecrire sur une bande magnétique ou un terminal s'énonce d'une même
manière tandis qu'à l'insu de l'utilisateur est mis en oeuvre,
bien sûr, le programme interne adapté.
Quelques fichiers spéciaux (usuellement regroupés sous
/dev)
sont
null,
tty,
tty*,
lp,
hd*,
fd* ...
3.9.1 /dev/null
/dev/null est, en écriture, un puits sans fond où s'engouffrent tous
les caractères qu'on y peut écrire.
En lecture c'est le flux nul !
/dev/null est pratique pour se débarasser des sorties encombrantes (messages d'erreur)
rm *.f 2>/dev/null
ne récriminera jamais.
3.9.2 /dev/tty
/dev/tty est, pour chacun, son couple clavier-écran.
Le programme
/usr/bin/tty délivre le nom physique de ce couple.
$ tty
/dev/tty02
/dev/tty ne fait, pour cet utilisateur, que rediriger ses entrées et sorties vers
/dev/tty02.
Ce dernier est l'interface entre le terminal branché sur l'ordinateur
en position 2 et
UNIX.
Cette interface est largement détaillée plus loin.
3.9.3 /dev/lp
Parmi tous les dispositifs communs se trouve
/dev/lp (pour Line Printer) où est branchée l'imprimante principale du calculateur.
On peut imprimer un fichier en le détournant sur elle comme dans :
cat fichier >/dev/lp
Mais afin de pouvoir la mettre en commun il est raisonnable d'utiliser
lpr (pour Line PRinter).
Ce dernier sérialise les impressions et est capable de les reprendre en cas
d'indisponibilité de l'imprimante (en jargon
spooler).
On écrira alors
lpr fichier
On utilisera par ailleurs le filtre
pr (pour imPRimer)
qui prépare les sorties en découpant le listage en pages, en insérant
en tête de chaque page le nom du fichier , le numéro de page et la date.
L'écriture standard est alors
print fichier
où
print est le script
pr $* | lpr
3.9.4 Les supports magnétiques
Les fichiers sont stockés sur disques durs
hd?? (pour Hard Disk numéro quelquechose) ou sur disquettes
fd??(pour Floppy Disk numéro quelquechose).
Les
/dev/?d?? sont les interfaces vers ces périphériques de mémorisation.
Ces périphériques peuvent être montés ou démontés.
Un periphérique est monté lorsqu'il est physiquement présent et qu'UNIX
le sait.
Par exemple, insérer une disquette dans le lecteur la rend physiquement
présente.
Ordonner
mount /dev/fd02 /f
indique à
UNIX,
que l'arborescence présente sur
fd02 est à greffer sur l'arborescence principale sous le répertoire
/f.
On peut bien sûr choisir librement n'importe quel autre répertoire (même
/)
pour y greffer
/dev/fd02.
On peut démonter un périphérique grâce à
umount /dev/fd02
puis en l'ôtant physiquement.