TP2 - Programmation système (M3101-1) SE TP UE31

Manipulation d'un fichier binaire et verrouillage

 

Exercice :

L'idée de l'exrecice est de vous faire manipuler un fichier binaire (non ASCII), lecture, écriture, déplacement, et d'introduire les notions de verrouillages de fichiers.

Vous devez télécharger le fichier lockfile.c. Celui-ci contient le squellete (main, nom des fonctions et arguments) permettant de gérer un répertoire de noms. Commencez par lire attentivement les commentaires qui précèdent chaque procédure/fonction afin de comprendre leur rôle.

  1. Modifiez/complétez les fonctions ajout() et modificationEntree().

  2. Modifiez/complétez les fonctions litUneEntree(), affichage(), affichageEntree().

  3. Modifiez les fonctions verrouillage et deverrouillage(). Vous devrez utiliser la fonction de la libc lockf(). Celles ci doivent être utilisées dans les fonctions ajout() et modificationEntree() de manière à garantir qu'il ne pourra pas y avoir d'accès concurrent en écriture sur les parties du fichier concernées. Vous testerez un verrouillage bloquant et un verrouillage non bloquant. Pour ce dernier, si un verrou est en cours, le programme devra afficher un message d'erreur et revenir au menu principal.

Question (vous devez répondre dans lockfileEmpty.c) :

1. Le verrouillage fonctionne-t-il pour des accès en lecture ?

2. Quelle est la différence entre les opérations F_TLOCK et F_TEST ?