fflush  função

Protótipo

int fflush (FILE * fluxo);

Descrição

A função fflush descarrega os buffers de saída de um fluxo de dados. Isto é, qualquer dado ainda não escrito no disco e guardado nos buffers temporários de saída, é escrito. Com isso, o buffer é limpo.

Essa função deve ser utilizada apenas em fluxos que suportem saída de dados; ela não deve ser utilizada em fluxos de entrada (exemplo: stdin). Algumas implementações permitem o uso da função em fluxos de entrada, limpando o buffer de entrada. Porém, essa funcionalidade não é portável e portanto pode não funcionar dependendo do ambiente, do compilador e de outros fatores menores.

Quando um arquivo é fechado, os buffers são descarregados automaticamente. Não é necessário chamar essa função antes de fechar o arquivo com fclose.

O fluxo continua funcionando normalmente após o uso do fflush.

Parâmetros

fluxo - ponteiro para um objeto FILE bufferizado

Valor de retorno

Se o arquivo foi removido com sucesso, fflush retorna 0.

Em caso de erro, a função retorna EOF e marca o indicador de erro.

Exemplo
#include <stdio.h>

int main() {
    FILE* arquivo = fopen("arquivo.txt", "w");
    if(arquivo == NULL) {
        fprintf(stderr, "Erro ao criar o arquivo.");
        return 1;
    }

    fprintf(arquivo, "Testando %d", 1);
    /* os dados podem não ter sido escritos no disco ainda */
    fflush(arquivo);
    /* agora "Testando 1" com certeza já foi escrito no disco */

    fprintf(arquivo, "Testando %d", 2);
    /* os dados podem não ter sido escritos no disco ainda */
    fclose(arquivo);
    /* agora "Testando 2" com certeza já foi escrito no disco */

    return 0;
}