FLOCK(2) Manuel du programmeur Linux FLOCK(2)
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 possi
bles 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 ver
rou.
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).
Linux 18 Mai 1999 1
FLOCK(2) Manuel du programmeur Linux FLOCK(2)
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 suffisament 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),
On peut également se reporter aux fichiers locks.txt et
mandatory.txt dans le répertoire /usr/src/linux/Documenta
tion.
TRADUCTION
Christophe Blaess, 1997.
Linux 18 Mai 1999 2