Provided by:
manpages-fr_1.67.0-1_all 
NOM
lockf - Poser, examiner ou supprimer un verrou Posix sur un fichier
ouvert.
SYNOPSIS
#include <unistd.h>
int lockf(int fd, int cmd, off_t len);
DESCRIPTION
Cette fonction pose, examine, ou supprime un verrou Posix sur un
fichier ouvert. Le fichier est indiqué par fd, un descripteur ouvert
en écriture, l’action par cmd, et la section par les octets aux
positions pos..pos+len-1 si len est positive et pos-len..pos-1 si len
est négative, où pos est la position actuelle dans le fichier. Si len
vaut zéro, la section s’étend de la position courant à l’infini,
englobant la fin-de-fichier et les extensiont ultérieures. Dans tous
les cas, la section peut s’étendre au-delà de la fin du fichier.
Sous Linux, cette fonction est juste une interface pour l’appel-système
fcntl(2). (En général, les relations entre lockf et fcntl sont
indéterminées).
Les opérations valides sont les suivantes :
F_LOCK Poser un verrou exclusif sur la section indiquée du fichier. Si
(une partie de) la section est déjà verrouillée, l’appel bloque
jusqu’à la suppression du verrou précédent. Si la section
recouvre un verrou existant (du même processus), les deux sont
regroupés. Les verrouillages sont libérés lorsque le processus
ferme un descripteur du fichier. Un processus fils n’hérite pas
du verrou.
F_TLOCK
Comme F_LOCK mais l’appel n’est pas bloquant, il renvoie une
erreur si le fichier est déjà verrouillé.
F_ULOCK
Déverrouiller la section indiquée du fichier. Ceci peut conduire
une section verrouillée à être découpée en deux sections.
F_TEST Verifier s’il y a un verrou : l’appel renvoie 0 si la section
indiquée est libre ou verrouillée par le processus appelant, et
-1 avec EACCES dans errno si un autre processus possède le
verrou.
VALEUR RENVOYÉE
Si elle réussit, cette fonction renvoie 0. En cas d’erreur, elle
renvoie -1 et remplit errno en conséquence.
ERREURS
EAGAIN Le fichier est verrouillée et F_TLOCK ou F_TEST étaient
indiqués, ou encore l’opération est impossible car le fichier
est projetée dans la mémoire d’un autre processus.
EBADF fd n’est pas un descripteur valide.
EDEADLK
L’opération T_LOCK demandée amènerait à un cas de blocage.
EINVAL Une opération invalide a été réclamée sur fd.
ENOLCK La table des verrous est pleine.
CONFORMITÉ
SYSV, POSIX 1003.1-2001
VOIR AUSSI
fcntl(2), flock(2)
On peut aussi examiner locks.txt et mandatory.txt dans la documentation
Linux /usr/src/linux/Documentation.
TRADUCTION
Christophe Blaess, 2000-2003.