Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

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

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   (consultez
   feature_test_macros(7)) :

       Pour toutes les fonctions ci-dessus :
           _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE || _POSIX_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

   Multithreading (voir pthreads(7))
       Les  fonctions  flockfile(),  ftrylockfile()  et funlockfile() sont sûres dans un contexte
       multithread.

CONFORMITÉ

       POSIX.1-2001.

DISPONIBILITÉ

       Ces fonctions sont disponibles lorsque _POSIX_THREAD_SAFE_FUNCTIONS est défini. Elles sont
       présentes dans la libc depuis la version 5.1.1 et dans la glibc depuis la version 2.0.

VOIR AUSSI

       unlocked_stdio(3)

COLOPHON

       Cette  page  fait partie de la publication 3.57 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

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Stéphan  Rafin  (2002), Alain Portal <http://manpagesfr.free.fr/> (2006). Florentin Duneau
       et l'équipe francophone de traduction de Debian (2006-2009).

       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> ».

                                         23 juillet 2013                             FLOCKFILE(3)