Provided by: manpages-fr_1.67.0-1_all bug

NOM

       flockfile,  ftrylockfile,  funlockfile  -  Verrouillage  d’un flux pour
       stdio.

SYNOPSIS

       #include <stdio.h>

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

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 et (si le compteur est non  nul)  un  thread  propriétaire.
       Lors  de  chaque  appel  à  la librairie stdio, ces fonctions attendent
       jusqu’à ce que l’objet FILE ne  soit  plus  verrouillé  par  un  thread
       différent,  puis  elles  le  verrouillent,  réalisent  l’entrée  sortie
       demandée, 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 l’overhead induit par
       ce verrouillage afin d’obtenir de meilleures performances.

       A 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)
       entre-temps.  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() et
       putc_unlocked() au lieu de getc() et putc().

       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.

       La fonction funlockfile() décrémente le compteur de verrou.

       La  fonction  ftrylockfile()  est  une   version   non   bloquante   de
       flockfile().   Elle   ne  fait  rien  lorsqu’un  autre  thread  détient
       *filehandle, sinon, elle se l’approprie  et incrémente le compteur.

VALEUR RENVOYÉE

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

ERREURS

       Aucune.

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 glic 2.0.

CONFORMITÉ

       POSIX.1

VOIR AUSSI

       unlocked_stdio(3)

TRADUCTION

       Stéphan Rafin, 2002.