Freigeben über


setbuf

Kontrollenstreampufferung. Diese Funktion ist veraltet; Verwenden Sie stattdessen setvbuf.

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

Parameter

  • stream
    Zeiger zur FILE-Struktur.

  • buffer
    Benutzer-zugeordneter Puffer.

Hinweise

Die setbuf-Funktion steuert Pufferung für stream. Das stream-Argument muss eine geöffnete Datei verweisen, die nicht gelesen wurde oder geschrieben wurde. Wenn das Argument bufferNULL ist, ist der Stream ungepuffert. Wenn nicht, muss der Puffer für ein Zeichenarray der Länge BUFSIZ veranschaulichen, 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 jeweiligen Stream, wird für E/A-Pufferung verwendet. Der Stream stderr ist standardmäßig ungepuffert, doch Sie können setbuf verwenden, um Puffer stderr zuzuweisen.

setbuf wurde durch die setvbuf ersetzt, das die bevorzugte Routine für neuen Code ist. setbuf wird für die Kompatibilität mit vorhandenem Code beibehalten.

Anforderungen

Routine

Erforderlicher Header

setbuf

<stdio.h>

Zusätzliche Informationen zur Kompatibilität 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. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Stream-E/A

fclose, _fcloseall

fflush

fopen, _wfopen

setvbuf