Share via


setbuf

Steuerelemente datenstrom pufferbetrieb.Diese Funktion ist veraltet. Verwenden Sie stattdessen setvbuf .

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

Parameter

  • stream
    Zeiger auf FILE Struktur.

  • buffer
    USER-zugeordneter Puffer.

Hinweise

Die setbuf-Funktion steuert die Pufferung für stream.Das stream-Argument muss eine offene Datei verweisen, die nicht gelesen oder geschrieben wurde.Wenn das Argument bufferNULList, wird der Stream ungepuffert.Wenn dies nicht der Fall ist, muss sich der Puffer in ein Zeichenarray der Länge BUFSIZveranschaulichen, in der BUFSIZ die Puffergröße ist, wie in STDIO.H. definiert.Der vom Benutzer angegebene Puffer anstelle des standardmäßigen SYSTEM-zugeordneten Puffers für den angegebenen Datenstream, wird für E/A-Pufferbetrieb verwendet.Der stderr Stream ist standardmäßig ungepuffert, aber Sie können setbuf verwenden, um Puffer zuweisen stderr.

setbuf wurde durch setvbufersetzt, das die bevorzugte Routine für den neuen Code ist.setbuf wird aus Gründen der Kompatibilität mit vorhandenem Code beibehalten.

Anforderungen

Routine

Erforderlicher Header

setbuf

<stdio.h>

Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.

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();
   }
}
  

.NET Framework-Entsprechung

Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

Siehe auch

Referenz

Stream E/A

fclose, _fcloseall

fflush

fopen, _wfopen

setvbuf