NOM

lockf - Poser, examiner ou supprimer un verrou POSIX sur un fichier ouvert

BIBLIOTHÈQUE

Bibliothèque C standard ( libc, -lc)

SYNOPSIS

#include <unistd.h>
int lockf(int fd, int cmd, off_t len);
Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :
lockf() :
    _XOPEN_SOURCE >= 500
        || /* glibc >= 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION

Apply, test, or remove a POSIX lock on a section of an open file. The file is specified by fd, a file descriptor open for writing, the action by cmd, and the section consists of byte positions pos..pos+len-1 if len is positive, and pos-len..pos-1 if len is negative, where pos is the current file position, and if len is zero, the section extends from the current file position to infinity, encompassing the present and future end-of-file positions. In all cases, the section may extend past current end-of-file.
On Linux, lockf() is just an interface on top of fcntl(2) locking. Many other systems implement lockf() in this way, but note that POSIX.1 leaves the relationship between lockf() and fcntl(2) locks unspecified. A portable application should probably avoid mixing calls to these interfaces.
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 d'autres systèmes) dans errno si un autre processus possède le verrou.

VALEUR RENVOYÉE

En cas de succès, zéro est renvoyé. En cas d'erreur, -1 est renvoyé et errno est définie pour préciser l'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ée dans la mémoire d'un autre processus.
EBADF
fd n'est pas un descripteur de fichier ouvert, ou cmd vaut F_LOCK ou F_TLOCK et fd n'est pas un descripteur de fichier en écriture.
EDEADLK
L'opération F_LOCK demandée amènerait à un cas d’interblocage.
EINTR
Durant l'attente pour acquérir le verrou, l'appel a été interrompu par un signal capturé par un gestionnaire ; consultez signal(7).
EINVAL
Une opération invalide a été réclamée sur cmd.
ENOLCK
La table des verrous est pleine.

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface Attribut Valeur
lockf() Sécurité des threads MT-Safe
 

STANDARDS

POSIX.1-2001, POSIX.1-2008, SVr4.

VOIR AUSSI

fcntl(2), flock(2)
locks.txt et mandatory-locking.txt dans le répertoire Documentation/filesystems des sources du noyau Linux. (Sur d'anciens noyaux, ces fichiers se trouvent dans le répertoire Documentation et mandatory-locking.txt est appelé mandatory.txt.)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <[email protected]>, Thierry Vignaud <[email protected]>, François Micaux, Alain Portal <[email protected]>, Jean-Philippe Guérard <[email protected]>, Jean-Luc Coulon (f5ibh) <[email protected]>, Julien Cristau <[email protected]>, Thomas Huriaux <[email protected]>, Nicolas François <[email protected]>, Florentin Duneau <[email protected]>, Simon Paillard <[email protected]>, Denis Barbier <[email protected]> et David Prévot <[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à [email protected]

Recommended readings

Pages related to lockf you should read also: