4 Les noms de fichiers
Pendant l'utilisation d'un système de fichiers il existe toujours
un répertoire courant qui est initialement root.
On peut désigner un fichier soit de façon absolue (en partant de
root), soit de façon relative (en partant du répertoire courant).
Syntaxe des noms de fichier :
|
nom |
::= |
nom-absolu
| nom-relatif |
nom-absolu |
::= |
'/'nom-relatif
| "/" |
nom-relatif |
::= |
{ nom-simple'/' }
nom-simple |
|
Où nom-simple est une suite d'au plus 14 caractères
différents de '/'
et '\0'
et éventuellement vide, auquel
cas elle est comprise comme "."
. Le nom particulier "/"
désigne évidemment la racine root.
En interne, on peut mémoriser le répertoire courant sous la forme
d'une pile de i-nombres. Le sommet de la pile est le i-nombre du
répertoire courant, la pile étant constituée des i-nombres des
répertoires pères jusqu'à la racine. Une telle pile permet de
s'assurer par exemple que l'on ne détruit pas un répertoire du chemain
courant. La figure 6 donne l'interface des fonctions
de gestion de cette pile sous forme d'un tableau de i-nombres.
#define MAXPILE 100
INOMBRE tpile [MAXPILE] ;
int spile = 0 ;
void empiler (INOMBRE i_nombre) ;
void depiler (void) ;
INOMBRE sommet (void) ;
void vider (void) ;
int est_en_pile (INOMBRE i_nombre) ;
Figure 6 : Fonctions de gestion de la pile des i-nombres
définissant le chemin courant
Question 7
Donnez quelques noms possibles pour le fichier fs.c
dans le
cas où root est le répertoire courant et dans le cas où c'est
usr
.
Question 8
Étant donné le i-nombre du répertoire courant, donnez l'algorithme
de principe de pwd.
Question 9
Donnez l'algorithme de la commande cd qui change le
répertoire courant.
Question 10
Étant donné un nom absolu de fichier, donnez l'algorithme qui
identifie le inoeud du fichier.