next up previous contents
Next: Verrouillage avec la fonction Up: Gestion de fichiers Previous: Les pipes nommés   Contents

Le verrouillage

Le verrouillage des fichiers permet de régler les problèmes d'accès concurrents à une ressource critique. Le partage d'un fichier entre plusieurs processus peut en effet entraîner une incohérence du fonctionnement. La solution consiste à verrouiller l'accès au fichier lorsqu'un processus désire y accéder de manière à bloquer les autres processus et à libérer l'accès au fichier dès que possible.

Il existe différents types de verrous :

Par défaut un verrou est consultatif et devient impératif après modification du bit sgid.

[linewidth=1pt,fillstyle=solid,shadow=true](-0.5,0)(16,-20)

Exemple de verrou externe :


#include <sys/types.h> <sys/stat.h> 
#include <fcntl.h> <stdio.h>

void    main(int argc, char **argv)
{
  char * verrou="my_verrou";
  int fd;


  close(fd);
  
        
  if (fork())
    {
      if(fd=open(verrou, O_CREAT | O_EXCL, 0))
        {
          printf("Pere : fd=%d\n",fd);
        }
      else
        printf("Pere : fd=%d\n",fd);
      sleep(10);

      close(fd);
      wait(0);
    }   
  else
    {
      if(fd=open(verrou, O_CREAT | O_EXCL, 0))
        {
          printf("Fils : fd=%d\n",fd);
        }
      else
        printf("Fils : fd=%d\n",fd);

      
      sleep(10);

      close(fd);
    }
}



Subsections
next up previous contents
Next: Verrouillage avec la fonction Up: Gestion de fichiers Previous: Les pipes nommés   Contents
Arnaud Revel
2001-11-26