Loading

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

       Cette  fonction  pose,  examine,  ou  supprime  un  verrou POSIX sur un
       fichier ouvert. Le fichier est spécifié 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, lockf() est une interface de vérrou au dessus de  fcntl(2).
       Beaucoup   d’autres  systèmes  implémentent  lockf()  de  cette  façon,
       cependant POSIX.1-2001 ne spécifie pas  la  relation  de  vérrou  entre
       lockf()  et fcntl(2). Une application portable ne devrait pas mixer des
       appels à ces deux 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  réussite,  zéro est renvoyé, sinon -1 est renvoyé 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ée
              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)
       Il existe aussi locks.txt et mandatory-locking.txt dans  le  répertoire
       Documentation/filesystems  des  sources du noyau (sur d’anciens noyaux,
       ces  fichiers  se  trouvent  dans  le  répertoire   Documentation/   et
       mandatory-locking.txt est appelé mandatory.txt).

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
       francophone de traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».