Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > 664c05250964d29fcf1d0bb310959fbc > files > 49

mandrake-doc-fr-10.0-5.1.100mdk.noarch.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Les fichiers spéciaux : fichiers mode bloc et caractère</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Manuel de référence"><link rel="up" href="ext2fs.html" title="Chapitre 9. Le système de fichiers Linux"><link rel="previous" href="ext2fs-pipe.html" title='Tubes "anonymes" et tubes nommés'><link rel="next" href="ext2fs-ln-s.html" title="Les liens symboliques et la limitation des
    liens en dur"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Les fichiers spéciaux : fichiers mode bloc et caractère</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext2fs-pipe.html">Précédent</a> </td><th width="60%" align="center">Chapitre 9. Le système de fichiers Linux</th><td width="20%" align="right"> <a accesskey="n" href="ext2fs-ln-s.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ext2fs-special"></a>Les fichiers spéciaux : fichiers mode bloc et caractère</h2></div></div><div></div></div><p><a name="BId-ext2fs-pa45"></a>Nous avons déjà mentionné que ces
fichiers peuvent être soit des fichiers créés par le système, soit des
périphériques de votre machine, et que le contenu des fichiers en mode
bloc <a class="indexterm" name="BId-ext2fs-it10"></a> <a class="indexterm" name="BId-ext2fs-it20"></a> était gardé en mémoire alors que
tel n'était pas le cas des fichiers en mode caractère. Pour illustrer
ceci, insérez une disquette quelconque dans le lecteur et tapez la
commande suivante deux fois de suite :</p><a name="BId-ext2fs-pl7"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ dd if=/dev/fd0 of=/dev/null</pre></td></tr></table><p><a name="BId-ext2fs-pa46"></a>
Vous pouvez observer la chose suivante : le premier lancement de la commande enclenche la lecture du contenu complet de la disquette alors qu'aucun accès au lecteur de disquette n'est effectué lors de la deuxième entrée de la commande. La résolution du mystère est simple : le contenu de la disquette a été gardé en mémoire lors de la première exécution de la commande (à la condition évidente que vous n'ayez pas changé de disquette entre temps !).
</p><p><a name="BId-ext2fs-pa47"></a>Et si, maintenant, vous avez envie d'
	imprimer un fichier de taille importante de cette
    façon :</p><a name="BId-ext2fs-pl8"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ cat /un/gros/fichier/imprimable/quelque/part &gt;/dev/lp0</pre></td></tr></table><p><a name="BId-ext2fs-pa48"></a>Que vous la tapiez une, deux ou cinquante
    fois, la commande prendra en fait autant de temps. Tout simplement
    parce que <tt class="filename">/dev/lp0</tt> est un fichier en mode
    caractère et que son contenu n'est donc pas gardé en
    mémoire.</p><p><a name="BId-ext2fs-pa49"></a>Le fait que le contenu des
fichiers en mode bloc soit gardé en mémoire comporte un effet de bord
agréable : non seulement les lectures sont gardées en mémoire,
mais également les écritures. Cela permet aux écritures sur disque
d'être asynchrones : quand vous écrivez un fichier sur disque,
l'opération d'écriture elle-même ne sera pas accomplie
immédiatement. Elle n'aura lieu que quand <span class="application">Linux</span> décidera de
lancer l'écriture physique.</p><p><a name="BId-ext2fs-pa50"></a>Enfin, chacun de ces fichiers spéciaux
possède un numéro <a name="BId-ext2fs-gt12" href="glossary.html#term-major"><i class="glossterm">majeur</i></a> et un numéro <a name="BId-ext2fs-gt13" href="glossary.html#term-minor"><i class="glossterm">mineur</i></a>. Sur la
sortie d'un <span><b class="command">ls -l</b></span>, ils apparaissent en lieu et
place de la taille, puisque celle-ci n'entre pas en ligne de compte
pour de tels fichiers : </p><a name="BId-ext2fs-pl9"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"> ls -l /dev/hda /dev/lp0
brw-rw----    1 root     disk       3,   0 May  5  1998 /dev/hda
crw-rw----    1 root     daemon     6,   0 May  5  1998 /dev/lp0</pre></td></tr></table><p><a name="BId-ext2fs-pa51"></a>Les numéros majeur et mineur
de <tt class="filename">/dev/hda</tt> sont, respectivement 3 et 0, ici, et
6 et 0 pour <tt class="filename">/dev/lp0</tt>. Notez que ces chiffres
correspondent chacun à un type de fichier : il peut ainsi exister
un fichier en mode caractère ayant 3 pour majeur et 0 pour mineur (un
tel fichier existe  : c'est <tt class="filename">/dev/ttyp0</tt>), et
un fichier en mode bloc ayant 6 pour majeur et 0 pour mineur. Ces
numéros majeurs et mineurs existent pour une raison bien simple :
ils permettent au noyau d'associer les bonnes opérations aux bons
fichiers (et donc aux périphériques auxquels ces fichiers se
réfèrent). En effet, on ne contrôle pas un lecteur de disquettes de la
même façon que, par exemple, un disque dur <span class="acronym">SCSI</span>.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext2fs-pipe.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="ext2fs.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="ext2fs-ln-s.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">Tubes "anonymes" et tubes nommés </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> Les liens symboliques et la limitation des
    liens en dur</td></tr></table></div></body></html>