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 enleve un verrou consultatif sur un fichier ouvert dont le descripteur est fd. Les operations possibles sont :

    LOCK_SH
        Verrouillage partage. Plusieurs processus peuvent disposer d'un verrouillage partage simultanement sur un meme fichier.

    LOCK_EX
        Verrouillage exclusif. Un seul processus dispose d'un verrouillage exclusif sur un fichier, a un moment donne.

    LOCK_UN
        Deverrouillage.

    LOCK_NB
        Ne pas bloquer lors d'un verrouillage. Cette option est utilisee conjointement ( OU binaire | ) avec les autres operations.

Un fichier donne ne peut pas posseder simultanement des verrous partages et des verrous exclusifs. C'est un fichier que l'on verrouille (c'est a dire un i-noeud) et non pas un descripteur de fichier. Ainsi, dup(2) et fork(2) ne creent pas d'instances multiples d'un verrou.

VALEUR RENVOYEE
flock renvoie 0 s'il reussit, ou -1 en cas d'echec, auquel cas errno contient le code d'erreur.

ERREURS

EWOULDBLOCK
    Le fichier est verrouille et l'attribut LOCK_NB a ete precise.

CONFORMITE
4.4BSD (l'appel systeme flock(2) est apparu pour la premiere fois dans 4.2BSD).

VOIR AUSSI
open(2), close(2), dup(2), execve(2), fcntl(2), fork(2), On peut egalement se reporter aux fichiers locks.txt et mandatory.txt dans le repertoire /usr/src/linux/Documentation.