FLOCK

Section: Manuel du programmeur Linux (2)
Updated: 15 janvier 2002
Index Retour au Menu Principal

 

NOM

flock - Placer ou enlever un verrou consultatif (advisory lock) sur un fichier ouvert.  

SYNOPSIS

#include <sys/file.h>

int flock(int fd, int operation);  

DESCRIPTION

Place ou enlève un verrou consultatif sur un fichier ouvert dont le descripteur est fd. Les opérations possibles sont :

LOCK_SH
Verrouillage partagé. Plusieurs processus peuvent disposer d'un verrouillage partagé simultanément sur un même fichier.
LOCK_EX
Verrouillage exclusif. Un seul processus dispose d'un verrouillage exclusif sur un fichier, à un moment donné.
LOCK_UN
Déverrouillage.
LOCK_NB
Ne pas bloquer lors d'un verrouillage. Cette option est utilisée conjointement ( OU binaire | ) avec les autres opérations.

Un fichier donné ne peut pas posséder simultanément des verrous partagés et des verrous exclusifs.

C'est un fichier que l'on verrouille (c'est à dire un i-noeud) et non pas un descripteur de fichier. Ainsi, dup(2) et fork(2) ne créent pas d'instances multiples d'un verrou.  

VALEUR RENVOYÉE

flock renvoie 0 s'il réussit, ou -1 en cas d'échec, auquel cas errno contient le code d'erreur.  

ERREURS

EWOULDBLOCK
Le fichier est verrouillé et l'attribut LOCK_NB a été précisé.
 

CONFORMITÉ

4.4BSD (l'appel système flock(2) est apparu pour la première fois dans 4.2BSD).  

NOTES

flock(2) ne verrouille par les fichiers à travers NFS. Utilisez fcntl(2) à la place : il fonctionne avec NFS si la version de Linux est suffisamment récente et si le serveur accepte les verrouillages.

Les verrous flock(2) et fcntl(2) ont une sémantique différente vis à vis des processus dupliqués par fork(2), et dup(2).  

VOIR AUSSI

open(2), close(2), dup(2), execve(2), fcntl(2), fork(2), lockf(3) On peut également se reporter aux fichiers locks.txt et mandatory.txt dans le répertoire /usr/src/linux/Documentation.

 

TRADUCTION

Christophe Blaess, 1997.



 

Index

NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION


Time: 21:38:41 GMT, December 19, 2004