setbuf
Steuert die Streampufferung. Diese Funktion ist veraltet. Verwenden Sie stattdessen setvbuf
.
Syntax
void setbuf(
FILE *stream,
char *buffer
);
Parameter
stream
Zeiger zur FILE
-Struktur.
buffer
Vom Benutzer zugewiesener Puffer.
Hinweise
Die setbuf
-Funktion steuert die Pufferung für stream
. Das stream
Argument muss auf eine geöffnete Datei verweisen, die nicht gelesen oder geschrieben wurde. Wenn das buffer
Argument lautet NULL
, ist der Datenstrom nicht gepuffert. Wenn dies nicht der Fall ist, muss der Puffer auf ein Zeichenarray der Länge BUFSIZ
zeigen, wobei BUFSIZ
die in STDIO.H definierte Puffergröße ist. Für den E/A-Pufferbetrieb wird anstelle des systemseitig für den gegebenen Stream reservierten Puffers der vom Benutzer angegebene Puffer verwendet. Der stderr
Datenstrom ist standardmäßig nicht gepuffert, Sie können setbuf
jedoch Puffer stderr
zuweisen.
setbuf
wurde durch die bevorzugte Routine für neuen Code ersetzt setvbuf
. Im Gegensatz dazu setvbuf
gibt es keine Möglichkeit, setbuf
Fehler zu melden. setvbuf
Außerdem können Sie sowohl den Puffermodus als auch die Puffergröße steuern. setbuf
ist zur Kompatibilität mit vorhandenem Code vorhanden.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
setbuf |
<stdio.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_setbuf.c
// compile with: /W3
// This program first opens files named DATA1 and
// DATA2. Then it uses setbuf to give DATA1 a user-assigned
// buffer and to change DATA2 so that it has no buffer.
#include <stdio.h>
int main( void )
{
char buf[BUFSIZ];
FILE *stream1, *stream2;
fopen_s( &stream1, "data1", "a" );
fopen_s( &stream2, "data2", "w" );
if( (stream1 != NULL) && (stream2 != NULL) )
{
// "stream1" uses user-assigned buffer:
setbuf( stream1, buf ); // C4996
// Note: setbuf is deprecated; consider using setvbuf instead
printf( "stream1 set to user-defined buffer at: %Fp\n", buf );
// "stream2" is unbuffered
setbuf( stream2, NULL ); // C4996
printf( "stream2 buffering disabled\n" );
_fcloseall();
}
}
stream1 set to user-defined buffer at: 0012FCDC
stream2 buffering disabled
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für