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