Função de biblioteca C - fflush ()

Descrição

A função da biblioteca C int fflush(FILE *stream) libera o buffer de saída de um fluxo.

Declaração

A seguir está a declaração da função fflush ().

int fflush(FILE *stream)

Parâmetros

  • stream - Este é o ponteiro para um objeto FILE que especifica um fluxo em buffer.

Valor de retorno

Esta função retorna um valor zero em caso de sucesso. Se ocorrer um erro, EOF é retornado e o indicador de erro é definido (isto é, feof).

Exemplo

O exemplo a seguir mostra o uso da função fflush ().

#include <stdio.h>
#include <string.h>

int main () {

   char buff[1024];
   
   memset( buff, '\0', sizeof( buff ));
   
   fprintf(stdout, "Going to set full buffering on\n");
   setvbuf(stdout, buff, _IOFBF, 1024);

   fprintf(stdout, "This is tutorialspoint.com\n");
   fprintf(stdout, "This output will go into buff\n");
   fflush( stdout );

   fprintf(stdout, "and this will appear when programm\n");
   fprintf(stdout, "will come after sleeping 5 seconds\n");
   
   sleep(5);
   
   return(0);
}

Vamos compilar e executar o programa acima que produzirá o seguinte resultado. Aqui o programa mantém o buffer na saída parabuff até que enfrente a primeira chamada para fflush(), após o qual ele começa a armazenar a saída novamente e, finalmente, dorme por 5 segundos. Ele envia a saída restante para o STDOUT antes do programa ser lançado.

Going to set full buffering on
This is tutorialspoint.com
This output will go into buff
and this will appear when programm
will come after sleeping 5 seconds