stdio.h


Función setbuf ANSI C

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

Esta función es equivalente a la función setvbuf pasando los valores _IOFBF para modo y BUFSIZ para tamaño, o (si acumulador es un puntero nulo), con el valor _IONBF para modo.

stdout y stdin no son almacenados si no son redirigidos; de lo contrario, son completamente almacenados. "No Almacenados" quiere decir que los caracteres escritos a un stream son inmediatamente transmitidos al fichero o dispostivo, mientras que "Almacenados" significa que los caracteres son acumulados y escritos como un bloque de información. La función setbuf produce resultados impredecibles al menos que que sea llamado después de abrir stream o después de llamar a fseek. Llamando a setbuf después de stream no ha sido almacenado es legal y no causará problemas.

Valor de retorno:

La función setbuf no retorna ningún valor.

Ejemplo:

#include <stdio.h>

int main()
{
  char acumulador[BUFSIZ];

  setbuf( stdout, acumulador );

  printf( "Esto es una prueba\n" );
  printf( "Este mensaje se mostrara a la vez\n" );
  printf( "setbuf, acumula los datos en un puntero\n" );
  printf( "hasta que se llene completamente\n" );

  fflush( stdout );

  return 0;
}