Linux

CentOS 4.8

flock(2)


FLOCK

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.


flock(2)