Compartilhar via


setbuf

Controles de fluxo de armazenamento em buffer.Esta função é obsoleto; use setvbuf em vez disso.

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

Parâmetros

  • stream
    Ponteiro para FILE estrutura.

  • buffer
    Buffer alocada por usuário.

Comentários

The setbuf controles de função de armazenamento em buffer para stream. The stream argumento deve se referir a um arquivo em aberto que não foi lido ou gravado. Se o buffer o argumento é NULL, o fluxo é un-buffered. Caso contrário, o buffer deve apontar para uma matriz de caractere de comprimento BUFSIZ, onde BUFSIZ é o dimensionar do buffer, conforme definido na STDIO.H. O buffer especificado pelo usuário, em vez do buffer alocado de sistema padrão para fluxo determinado, é usado para E/s de buffer.The stderr o fluxo é un-buffered por padrão, mas você pode usar setbuf Para atribuir buffers para stderr.

setbuf foi substituído por setvbuf, que é a rotina preferencial para o novo código.setbuf é mantido para compatibilidade com o código existente.

Requisitos

Rotina

Cabeçalho necessário

setbuf

<stdio.h>

Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.

Exemplo

// 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

Equivalente do NET Framework

Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Fluxo de E/S

fclose, _fcloseall

fflush

fopen, _wfopen

setvbuf