STDIO_EXT(3)

NOM
__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf - Interfaces pour la structure FILE (stdio)

SYNOPSIS
#include <stdio.h>
#include <stdio_ext.h>

size_t __fbufsize(FILE *flux);
size_t __fpending(FILE *flux);
int __flbf(FILE *flux);
int __freadable(FILE *flux);
int __fwritable(FILE *flux);
int __freading(FILE *flux);
int __fwriting(FILE *flux);
int __fsetlocking(FILE *flux, int type);
void _flushlbf(void);
void __fpurge(FILE *flux);

DESCRIPTION
Solaris a introduit des routines afin de permettre des accès portables aux composants internes de la structure FILE. La glibc a également implémenté ces routines.

La fonction __fbufsize() renvoie la taille du tampon actuellement utilisé par le flux considéré.

La fonction __fpending() renvoie le nombre d'octets du tampon de sortie. Pour les flux orientés caractères larges, l'unité est le caractère large. Cette fonction n'est pas définie pour les tampons en mode lecture, ou bien ouverts en lecture seule.

La fonction __flbf() renvoie une valeur différente de zéro si le flux a un tampon de ligne, sinon, elle renvoie zéro.

La fonction __freadable() renvoie une valeur différente de zéro si le flux peut être lu, sinon, elle renvoie zéro.

La fonction __fwritable() renvoie une valeur différente de zéro si l'on peut écrire dans le flux, sinon, elle renvoie zéro.

La fonction __freading() renvoie une valeur différente de zéro si le flux est en lecture seule, ou bien si la dernière opération sur le flux était une lecture, sinon, elle renvoie zéro.

La fonction __fwriting() renvoie une valeur différente de zéro si le flux est en écriture seule, ou bien si la dernière opération sur le flux était une écriture, sinon, elle renvoie zéro.

La fonction __fsetlocking() peut être utilisée afin de sélectionner le type de verrouillage souhaité sur le flux. Elle renvoie le type actuel. Le paramètre type peut prendre les trois valeurs suivantes :

FSETLOCKING_INTERNAL
    réalise un verrouillage implicite sur toutes les opérations affectant le flux considéré (à l'exception de fonctions nommées *_unlocked). Il s'agit du comportement par défaut.

FSETLOCKING_BYCALLER
    l'appelant prendra en charge le verrouillage (en utilisant potentiellement flockfile(3) dans le cas où il y a plusieurs threads), et les routines d'entrées-sorties standard n'effectueront plus aucun verrouillage jusqu'à ce que l'état soit rétabli à FSETLOCKING_INTERNAL.

FSETLOCKING_QUERY
    ne change pas le type de verrouillage (le renvoie seulement).

La fonction _flushlbf() vide tous les flux à tampon de ligne (sans doute de sorte que la sortie d'un terminal soit écrite, par exemple avant de lire une entrée sur le clavier).

La fonction __fpurge() permet de se débarrasser du contenu du tampon de flux.

ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface | Attribut | Valeur
__fbufsize(), __fpending(), __fpurge(), __fsetlocking() | Sécurité des threads | MT-Safe race:stream
__flbf(), __freadable(), __freading(), __fwritable(), __fwriting(), _flushlbf() | Sécurité des threads | MT-Safe

VOIR AUSSI
flockfile(3), fpurge(3)

COLOPHON
Cette page fait partie de la publication 5.13 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

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.