dwww Home | Manual pages | Find package

flockfile(3)               Library Functions Manual               flockfile(3)

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 multi-
       thread. 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  biblio-
       thè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 fi-
       chier réalisé par des fonctions comme flock(2) et lockf(3).)

       Tout ceci est invisible au programmeur en C, mais il existe  deux  rai-
       sons de souhaiter un contrôle plus fin. D'une part, un thread peut réa-
       liser 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  ac-
       tuel, 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 flock-
       file(). 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
       Aucun.

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

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

STANDARDS
       POSIX.1-2001, POSIX.1-2008.

       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  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.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.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>, David Prévot <david@tilapin.org> et Frédéric Hantrais <fhan-
       trais@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⟩.

Pages du manuel de Linux 6.03   5 février 2023                    flockfile(3)

Generated by dwww version 1.15 on Sat Jun 29 01:33:27 CEST 2024.