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). ┌─────────────────────────────────────┬──────────────────────┬─────────┐ │Interface │ Attribut │ Valeur │ ├─────────────────────────────────────┼──────────────────────┼─────────┤ │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.