Forum Programmation.c++ Bloquer l'accès a un fichier utilisé

Posté par  .
Étiquettes : aucune
0
3
juil.
2006

J'ai une application qui écrit des informations dans un fichier, et je désirerai que ce fichier soit en lecture seule pour tous les utilisateurs/programmes (excepté mon application) tant que mon application n'est pas terminée. Donc je veux que n'importe qui puisse lire le contenu du fichier mais pas l'éditer.

Quelqu'un a t'il une idée ou une piste pour m'aider ?

  • # grosse bidouille

    Posté par  . Évalué à 1.

    je ne me suis jamais penché sur ce type de problèmes, et peut être qu'il y a un moyen propre de faire ça, mais j'ai une idée un peu bourrin :
    - Crée un utilisateur spécial avec les droits sur ton fichier et tout le monde en groupe.
    - Quand tu écris sur ton fichier tu change les droits d'accès au groupe et users pour qu'ils n'aient accès qu'en lecture.
    - Accède à ton fichier en écriture avec ton compte spécial.
    - Une fois fini tu remets tout comme avant.
    • [^] # Re: grosse bidouille

      Posté par  . Évalué à 3.

      Effectivement, c'est une grosse bidouille :-)

      Ce qu'il veut faire, c'est un verrou, tout simplement (ou lock).

      man flock
      man lockf

      A noter que flock() propose des verrous consultatifs par défaut (advisory). Pour créer des verrous obligatoires (mandatory), il faut passer une option spéciale à mount.

      Voir aussi :

      /usr/src/linux/Documentation/locks.txt
      /usr/src/linux/Documentation/mandatory.txt


      Toutefois, il est effectivement important de régler correctement les droits d'un fichier avant de commencer à régler des problèmes par ce genre de solution.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.