Provided by: manpages-de-dev_1.11-1_all bug

BEZEICHNUNG

       setbuf, setbuffer, setlinebuf, setvbuf - Pufferoperationen für Streams

ÜBERSICHT

       #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);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       setbuffer(), setlinebuf(): _BSD_SOURCE

BESCHREIBUNG

       Die  drei  verfügbaren  Typen von Pufferungen sind nicht gepuffert, block-gepuffert und zeilen-gepuffert.
       Wenn ein Ausgabe-Stream nicht gepuffert ist, erscheinen die Informationen in der Zieldatei oder  auf  dem
       Terminal  direkt  nachdem  sie  geschrieben  wurden.  Wenn  die Ausgabe block-gepuffert ist, werden viele
       Zeichen erst einmal gesammelt und dann in einem Rutsch ausgegeben. Wenn die Ausgabe zeilen-gepuffert ist,
       werden die Zeichen bis zu einem Zeilenvorschub-Zeichen gesammelt und erst dann ausgegeben, oder  Eingaben
       wurden  von  einem  beliebigen  Datenstrom  gelesen,  der mit einem Endgerät verbunden ist (üblicherweise
       stdin). Die Funktion fflush(3) darf dazu verwendet werden, ein frühes Leeren  des  Puffers  zu  erzwingen
       (siehe auch 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.

       Die Funktion setvbuf() wird genutzt, um zu jedem beliebigen  Zeitpunkt  die  Pufferung  eines  geöffneten
       Streams zu ändern. Als Parameter wird mode wird eine der drei folgenden Konstanten verwendet:

              _IONBF nicht gepuffert

              _IOLBF Zeilenpufferung

              _IOFBF voll gepuffert

       Mit  Ausnahme von ungepufferten Dateien sollte mit dem Argument buf ein Zeiger auf einen Puffer angegeben
       werden, der mindestens size Byte groß ist. Dieser Puffer wird anstelle des aktuellen  Puffers  verwendet.
       Wenn  für  buf  NULL  angegeben  wird,  ist  nur  der  Modus  betroffen;  bei  der nächsten Schreib- oder
       Leseoperation wird ein neuer Puffer reserviert. Die Funktion setvbuf() darf nur dann  angewendet  werden,
       nachdem ein Stream geöffnet wurde und bevor irgendwelche anderen Operationen darauf ausgeführt wurden.

       Die  anderen  drei  Funktionen  sind im Endeffekt einfache Aliase für Aufrufe von setvbuf(). Die Funktion
       setbuf() entspricht genau dem folgendem Aufruf:

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

       Die Funktion setbuffer() ist die gleiche, bis auf die Tatsache, dass die Größe des Puffers  vom  Aufrufer
       bestimmt  anstatt  von  der  Voreinstellung  BUFSIZ übernommen wird. Die Funktion setlinebuf() entspricht
       genau dem folgendem Aufruf:

           setvbuf(stream, NULL, _IOLBF, 0);

RÜCKGABEWERT

       Die Funktion setvbuf()  gibt bei Erfolg 0 zurück. Sie gibt im Fehlerfall  (mode  ist  ungültig  oder  der
       Anfrage kann nicht genügt werden) ungleich Null zurück und darf dann errno setzen.

       Die anderen Funktionen geben keinen Wert zurück.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌─────────────────────────┬───────────────────────┬─────────┐
       │ SchnittstelleAttributWert    │
       ├─────────────────────────┼───────────────────────┼─────────┤
       │ setbuf(), setbuffer(),  │ Multithread-Fähigkeit │ MT-Safe │
       │ setlinebuf(), setvbuf() │                       │         │
       └─────────────────────────┴───────────────────────┴─────────┘

KONFORM ZU

       Die Funktionen setbuf() und setvbuf() sind konform zu C89 und C99.

FEHLER

       Sie  müssen  sicherstellen,  dass  der  Puffer buf zu dem Zeitpunkt, zu dem der Stream stream geschlossen
       wird, noch existiert, was ebenfalls bei Programmende geschieht.

       #include <stdio.h>

       int
       main(void)
       {
           char buf[BUFSIZ];
           setbuf(stdin, buf);
           printf("Hallo, Welt!\n");
           return 0;
       }

SIEHE AUCH

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

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  4.04  des  Projekts  Linux-man-pages.  Eine  Beschreibung  des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
       sich unter http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>
       erstellt.

       Diese  Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser  Handbuchseite  finden,  schicken  Sie  bitte  eine  E-Mail  an
       <debian-l10n-german@lists.debian.org>.

Linux                                              7. Mai 2015                                         SETBUF(3)