setbuf
| Definiert in Header <stdio.h> |
||
| void setbuf( FILE *stream, char *buffer ); |
(bis C99) | |
| void setbuf( FILE *restrict stream, char *restrict buffer ); |
(seit C99) | |
| #define BUFSIZ /*nicht spezifiziert*/ |
||
Legt den internen Puffer für Stream-Operationen fest. Er sollte mindestens BUFSIZ Zeichen lang sein.
Wenn buffer nicht null ist, ist dies äquivalent zu setvbuf(stream, buffer, _IOFBF, BUFSIZ).
Wenn buffer null ist, ist dies äquivalent zu setvbuf(stream, NULL, _IONBF, 0), was die Pufferung deaktiviert.
Inhalt |
[bearbeiten] Parameter
| stream | - | Der zu konfigurierende Dateistream |
| buffer | - | Zeiger auf einen Puffer, den der Stream verwenden soll. Wenn ein Nullzeiger übergeben wird, wird die Pufferung deaktiviert. |
[bearbeiten] Rückgabewert
Keiner.
[bearbeiten] Hinweise
Wenn BUFSIZ nicht die geeignete Puffergröße ist, kann setvbuf verwendet werden, um dies zu ändern.
setvbuf sollte auch zur Fehlererkennung verwendet werden, da setbuf keinen Erfolg oder Misserfolg anzeigt.
Diese Funktion darf nur verwendet werden, nachdem stream mit einer geöffneten Datei verknüpft wurde, aber bevor eine andere Operation (außer einem fehlgeschlagenen Aufruf von setbuf/setvbuf) ausgeführt wurde.
Ein häufiger Fehler ist das Setzen des Puffers von stdin oder stdout auf ein Array, dessen Lebensdauer vor Programmende endet.
[bearbeiten] Beispiel
setbuf kann verwendet werden, um die Pufferung für Streams zu deaktivieren, die eine sofortige Ausgabe erfordern.
Ausgabe
ab
[bearbeiten] Referenzen
- C17-Standard (ISO/IEC 9899:2018)
- 7.21.5.5 The setbuf function (S. 225)
- C11-Standard (ISO/IEC 9899:2011)
- 7.21.5.5 The setbuf function (S. 307-308)
- C99-Standard (ISO/IEC 9899:1999)
- 7.19.5.5 The setbuf function (S. 273)
- C89/C90-Standard (ISO/IEC 9899:1990)
- 4.9.5.5 The setbuf function
[bearbeiten] Siehe auch
| setzt den Puffer und seine Größe für einen Dateistream (Funktion) | |
| C++ Dokumentation für setbuf
| |