Man page - setlinebuf(3)

Packages contains this manual

Available languages:

en fr ja ro zh_TW zh_CN de

Manual

setbuf

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ATTRIBUTS
STANDARDS
HISTORIQUE
AVERTISSEMENTS
BOGUES
VOIR AUSSI
TRADUCTION

NOM

setbuf, setbuffer, setlinebuf, setvbuf - Agir sur les tampons d’un flux

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <stdio.h>

int setvbuf(FILE *restrict stream , char buf [restrict . size ],
int
mode , size_t size );

void setbuf(FILE *restrict stream , char *restrict buf );
void setbuffer(FILE *restrict
stream , char buf [restrict . size ],
size_t
size );
void setlinebuf(FILE *
stream );

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros (7)) :

setbuffer (), setlinebuf () :
Depuis la glibc 2.19 :
_DEFAULT_SOURCE
glibc 2.19 et antérieures :
_BSD_SOURCE

DESCRIPTION

Les trois types de tampons disponibles sont les suivants : pas de tampons, tampons de blocs et tampons de lignes. Quand un flux de sortie n’a pas de tampon, les donnĂ©es apparaissent dans le fichier destination ou sur le terminal, dĂšs qu’elles sont Ă©crites. Avec les tampons par blocs, une certaine quantitĂ© de donnĂ©es est conservĂ©e avant d’ĂȘtre Ă©crite en tant que bloc. Avec les tampons de lignes, les caractĂšres sont conservĂ©s jusqu’à ce qu’un saut de ligne soit transmis, ou que l’on rĂ©clame une lecture sur un flux attachĂ© au terminal (typiquement stdin ). La fonction fflush (3) peut ĂȘtre utilisĂ©e pour forcer l’écriture Ă  n’importe quel moment (voir fclose (3)).

Normalement, tous les fichiers utilisent des tampons de blocs. Si le flux se rapporte Ă  un terminal (comme stdout habituellement) il s’agit d’un tampon de ligne. Le flux standard de sortie d’erreur stderr n’a jamais de tampon par dĂ©faut.

La fonction setvbuf () peut ĂȘtre utilisĂ©e sur n’importe quel flux ouvert pour modifier son type de tampon. La paramĂštre mode doit correspondre Ă  l’une des constantes symboliques suivantes :

_IONBF

pas de tampon

_IOLBF

tampon de ligne

_IOFBF

tampon complet

À l’exception des fichiers sans tampons, l’argument buf doit pointer sur un tampon contenant au moins size octets. Ce nouveau tampon sera utilisĂ© Ă  la place de l’ancien. Si l’argument buf est NULL, seul le mode est affectĂ©. Un nouveau tampon sera allouĂ© automatiquement lors de la prochaine opĂ©ration de lecture ou d’écriture. La fonction setvbuf () ne peut ĂȘtre utilisĂ©e qu’aprĂšs l’ouverture du flux, et avant toute opĂ©ration dessus.

Les trois autres appels sont, en fait, simplement des alias pour l’appel de setvbuf (). la fonction setbuf () est exactement Ă©quivalente Ă 

setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);

La fonction setbuffer () est identique, sauf que la taille du tampon est indiquĂ©e par l’appelant plutĂŽt que la valeur par dĂ©faut BUFSIZ . La fonction setlinebuf () est exactement Ă©quivalente à :

setvbuf(stream, NULL, _IOLBF, 0);

VALEUR RENVOYÉE

La fonction setvbuf () renvoie zĂ©ro si elle rĂ©ussit. Elle renvoie une valeur non nulle en cas d’échec ( mode n’est pas valable ou la requĂȘte ne peut pas ĂȘtre honorĂ©e). Elle peut remplir errno en cas d’erreur. Les autres fonctions ne renvoient rien.

Les autres fonctions ne renvoient pas de valeur.

ATTRIBUTS

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

Image grohtml-3866768-1.png

STANDARDS

setbuf ()
setvbuf
()

C11, POSIX.1-2008.

HISTORIQUE

setbuf ()
setvbuf
()

C89, POSIX.1-2001.

AVERTISSEMENTS

POSIX remarque que la valeur de errno est indĂ©terminĂ©e aprĂšs un appel Ă  setbuf () et note plus loin que dans la mesure oĂč la valeur de errno n’est pas obligĂ©e de rester la mĂȘme aprĂšs un appel rĂ©ussi Ă  setbuf (), les applications devraient utiliser setvbuf () Ă  la place afin de dĂ©tecter les erreurs.

BOGUES

Il faut toujours s’assurer que le contenu de buf existe encore au moment de la fermeture du flux stream (qui se produit automatiquement à la fin du programme). Par exemple, ceci n’est pas valable :

#include <stdio.h>
int
main(void)
{
char buf[BUFSIZ];
setbuf(stdout, buf);
printf("Bonjour le monde !\n");
return 0;
}

VOIR AUSSI

stdbuf (1), fclose (3), fflush (3), fopen (3), fread (3), malloc (3), printf (3), puts (3)

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>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 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 .