Provided by: manpages-fr-dev_4.13-4_all bug

NOM

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

SYNOPSIS

       #include <stdio.h>

       void setbuf(FILE *stream, char *buf);

       void setbuffer(FILE *stream, char *buf, size_t size);

       void setlinebuf(FILE *stream);

       int setvbuf(FILE *stream, char *buf, int mode, size_t size);

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

       setbuffer(), setlinebuf():
           Since glibc 2.19:
               _DEFAULT_SOURCE
           Glibc 2.19 and earlier:
               _BSD_SOURCE

DESCRIPTION

       The  three types of buffering available are unbuffered, block buffered, and line buffered. When an output
       stream is unbuffered, information appears on the destination file or terminal as soon as written; when it
       is block buffered many characters are saved up  and  written  as  a  block;  when  it  is  line  buffered
       characters are saved up until a newline is output or input is read from any stream attached to a terminal
       device  (typically  stdin).  The  function  fflush(3)   may  be  used  to force the block out early. (See
       fclose(3).)

       Normally all files are block buffered. If a stream refers to a terminal (as stdout normally does), it  is
       line buffered. The standard error stream stderr is always unbuffered by default.

       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).
       ┌─────────────────────────┬──────────────────────┬─────────┐
       │ InterfaceAttributValeur  │
       ├─────────────────────────┼──────────────────────┼─────────┤
       │ setbuf(), setbuffer(),  │ Sécurité des threads │ MT-Safe │
       │ setlinebuf(), setvbuf() │                      │         │
       └─────────────────────────┴──────────────────────┴─────────┘

CONFORMITÉ

       Les fonctions setbuf() et setvbuf() sont conformes à C89 et C99.

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(stdin, buf);
           printf("Hello, world!\n");
           return 0;
       }

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de la publication 5.10 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 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.

Linux                                              6 mars 2019                                         SETBUF(3)