lockf - Poser, examiner ou supprimer un verrou Posix sur un fichier ouvert.
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.
Si elle réussit, cette fonction renvoie 0. En cas d'erreur, elle renvoie -1 et
remplit
errno
en conséquence.
Christophe Blaess, 2000-2003.