Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

       flockfile, ftrylockfile, funlockfile - Verrouiller un flux FILE pour stdio

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <stdio.h>

       void flockfile(FILE *filehandle);
       int ftrylockfile(FILE *filehandle);
       void funlockfile(FILE *filehandle);

   Exigences    de    macros    de   test   de   fonctionnalités   pour   la   glibc   (consulter
   feature_test_macros(7)) :

       Pour toutes les fonctions ci-dessus :
           /* Depuis la glibc 2.24 : */ _POSIX_C_SOURCE >= 199309L
               || /* glibc <= 2.23 : */ _POSIX_C_SOURCE
               || /* glibc <= 2.19 : */ _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION

       Les fonctions stdio peuvent être utilisées dans un contexte multithread. Ceci est  réalisé
       en  affectant  à  chaque  objet  de  type  FILE  un « compteur de verrouillage » et (si le
       « compteur de verrouillage » est non nul) un thread propriétaire. Lors de chaque  appel  à
       la  bibliothèque,  ces  fonctions  attendent  jusqu'à  ce  que  l'objet  FILE ne soit plus
       verrouillé  par  un  thread  différent,  puis  elles  le   verrouillent,   réalisent   les
       entrées/sorties demandées, et libèrent l'objet.

       (Remarque :  ce  verrouillage  n'a rien à voir avec le verrouillage de fichier réalisé par
       des fonctions comme flock(2) et lockf(3).)

       Tout ceci est invisible au programmeur en C, mais il existe deux raisons de  souhaiter  un
       contrôle  plus  fin.  D'une  part,  un  thread  peut  réaliser une série d'entrées/sorties
       interdépendantes, ces opérations ne devant pas être interrompues par  les  entrées/sorties
       d'autres  threads.  D'autre  part,  on  peut désirer supprimer la surcharge induite par ce
       verrouillage afin d'obtenir de meilleures performances.

       À cette fin, un thread peut verrouiller explicitement un objet de type FILE, puis réaliser
       sa  série d'entrées/sorties, et enfin, relâcher le verrou. Cela empêche les autres threads
       d'intervenir sur le flux. Si la motivation du verrouillage est la recherche de  meilleures
       performances,  on  peut  réaliser l'entrée/sortie à l'aide des versions non bloquantes des
       fonctions stdio : avec getc_unlocked(3) et putc_unlocked(3) au lieu de getc(3) et putc(3).

       La fonction flockfile() attend jusqu'à ce que *filehandle ne soit plus verrouillé  par  un
       autre  thread,  puis  affecte *filehandle au thread actuel, et incrémente le « compteur de
       verrouillage ».

       La fonction funlockfile() décrémente le « compteur de verrouillage ».

       La fonction ftrylockfile() est une version non bloquante de flockfile(). Elle ne fait rien
       lorsqu'un  autre  thread  est  propriétaire  de *filehandle, sinon, elle se l'approprie et
       incrémente le « compteur de verrouillage ».

VALEUR RENVOYÉE

       La fonction ftrylockfile() renvoie zéro en cas de succès (le verrou a été obtenu), et  une
       valeur non nulle en cas d'échec.

ERREURS

       Aucune.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │flockfile(), ftrylockfile(), funlockfile()              │ Sécurité des threads │ MT-Safe │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       POSIX.1-2008.

HISTORIQUE

       POSIX.1-2001.

       Ces fonctions sont disponibles lorsque _POSIX_THREAD_SAFE_FUNCTIONS est défini.

VOIR AUSSI

       unlocked_stdio(3)

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  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot  <david@tilapin.org>  et  Frédéric  Hantrais
       <fhantrais@gmail.com>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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 à ⟨debian-l10n-french@lists.debian.org⟩.