Share via


setbuf

almacenamiento en búfer de la secuencia de Controles.se deja de utilizar esta función; uso setvbuf en su lugar.

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

Parámetros

  • stream
    puntero a la estructura de FILE .

  • buffer
    búfer Usuario-afectado asignado.

Comentarios

la función de setbuf controla el almacenamiento en búfer para stream.El argumento de stream debe hacer referencia a un archivo abierto que no se ha leído ni se ha escrito.Si el argumento de buffer es NULL, la secuencia se inseparada.Si no, el búfer debe señalar a una matriz de caracteres de longitud BUFSIZ, donde el tamaño de búfer BUFSIZ como definido en STDIO.H.El búfer definido por el usuario, en lugar del búfer sistema-afectado asignado predeterminado para la secuencia especificada, se utiliza para el búfer de E/S.La secuencia de stderr está inseparada de forma predeterminada, pero puede utilizar setbuf para asignar búferes a stderr.

setbuf se ha reemplazado por setvbuf, que es la rutina preferida para el nuevo código.setbuf se conserva a efectos de compatibilidad con código existente.

Requisitos

rutina

Encabezado necesario

setbuf

<stdio.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

Ejemplo

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

Equivalente en .NET Framework

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.

Vea también

Referencia

E/S de la secuencia

fclose, _fcloseall

fflush

fopen, _wfopen

setvbuf