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