• # flock(2)

    Posté par . En réponse au message Bloquer l'accès à un fichier utilisé. Évalué à 6.

    Tu peux essayer flock(2) (BSD) ou lockf(3) (POSIX), mais ce sont des verrous 'coopératifs'; c'est à dire que si une autre application quelconque a les droits sur le fichier verrouillé, elle peut passer outre.

    Si tu n'a pas d'impératif de portabilité, tu peux faire du mandatory locking (imposé à tous les processus) avec fcntl(2), mais bon il faut que le système de fichier le gère et soit monté avec l'option -o mand, etc... Donc je suis pas sûr que ça t'intéresse.

    Sinon, une solution bête et méchante serait de copier le fichier en mémoire (pas avec mmap(2), les changements faits par d'autre processus seraient visibles) et d'écraser l'original quand tu as fini de travailler dessus en mémoire.