Sommaire

Verrouillage d’un fichier

Par défaut, les fichiers des systèmes de type Unix peuvent être accédés simultanément par différents processus, y compris en écriture. Un processus peut difficilement déterminer si un fichier est en cours d’utilisation par un autre processus, il est même possible de supprimer un fichier qu’un processus a ouvert au préalable : ce dernier continuera à accéder normalement au fichier, en lecture comme en écriture, et le fichier ne sera effectivement supprimé que lorsque tous les processus l’auront fermé. Ces caractéristiques sont liées au concept même de fichier d’Unix, l’interface fichier universelle, et c’est ce qui permet de gérer les périphériques comme s’il s’agissait de fichiers.

Cependant, il peut être essentiel pour une application de garantir un accès exclusif sur tout ou partie d’un fichier. Un mécanisme de verrouillage a donc été implémenté sur la plupart des systèmes de type Unix, dont Linux.

Il existe plusieurs mécanismes distincts de verrouillage des fichiers, gérés par des appels système différents. L’appel système flock(), limité (verrou sur l’intégralité du fichier, pas de verrouillage impératif) et en voie d’obsolescence, ne sera pas traité ici.

1. Types de verrous

a. Verrouillage ...