LOCKF
Section : Manuel du programmeur Linux (
3)
Mise à jour de la version anglaise : 26 juillet 2007
Index
Menu principal
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);
Exigences de macros de test de fonctionnalités pour la glibc (voir
feature_test_macros(7)) :
lockf() :
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500
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 extensions 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(2)
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
-
Vérifier 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
EAGAIN
(EACCES
sur certains autres systèmes)
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
errno
contient le code d'erreur.
ERREURS
- EACCES ou EAGAIN
-
Le fichier est verrouillé et
F_TLOCK
ou
F_TEST
étaient indiqués, ou encore l'opération est impossible
car le fichier est projeté dans la mémoire d'un autre processus.
- EBADF
-
fd
n'est pas un descripteur de fichier ouvert.
- 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É
SVr4, POSIX.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
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 31 août 2000
et révisée le 17 juillet 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 3 lockf ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- CONFORMITÉ
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 17 juillet 2008