Laboratoire 6 - Systèmes de gestion des fichiers

Page content

L’objectif de ce laboratoire est de se familiariser avec le système de gestion des fichiers.

Remarque: n’oubliez pas, lors de l’utilisation d’appels systèmes, de traiter les cas d’erreur.

Attributs des fichiers et table des inodes

L’objectif est d’écrire une version simplifiée du programme ls. Des options supplémentaires sont ajoutées dans le laboratoire suivant.

Essayez de suivre les étapes suivantes :

  • Écrivez un programme mini_ls qui, pour un fichier donné en argument, affiche à l’écran: le numéro d’inode, le type de fichier, les droits d’accès, le nombre de liens durs, l’uid et le gid propriétaires, la taille du fichier, et la date de dernière modification. Pour ce faire, les fonctions stat fstat lstat pourront vous être utiles. La sortie fournie par votre programme devrait être similaire à celle de la commande ls avec les options -l, -n, -i et -d.
$ ./mini_ls votre_fichier.txt

Numéro inode	| Droits	| Nb liens	| uid	| gid	| Taille	| Dernière modification
16132273	| rw-rw-r-- 	| 1 		| 1000	| 1001	| 86		| oct 21 15:05
  • On peut passer en argument plusieurs fichiers, on a alors une ligne par fichier

  • Si le fichier est un lien symbolique, affichez la destination du lien de façon similaire a ls -l (par exemple mon_lien -> fichier_pointé). La fonction readlink vous sera utile.

  • Affichez le nom du fichier en couleur

    • vert: exécutable
    • bleu: répertoire
    • bleu ciel: lien symbolique
    • rouge: lien symbolique brisé
  • Extra. utiliser la variable d’environnement LS_COLORS pour savoir de quelle couleur afficher les entrées en fonction de leurs extensions.