Buscar

Vimos anteriormente que os dados gravados em um arquivo são primeiramente gravados em um “buffer”, uma área intermediária entre o arquivo no disco ...

Vimos anteriormente que os dados gravados em um arquivo são primeiramente gravados em um “buffer”, uma área intermediária entre o arquivo no disco e o programa em execução, e somente quando este “buffer” está cheio é que seu conteúdo é escrito no disco. Também vimos que o uso do “buffer” é uma questão de eficiência. Porém, a linguagem C permite que nós forcemos a gravação de qualquer dado contido no “buffer” no momento em que quisermos. Para realizar essa tarefa, usa-se a função fflush(), cujo protótipo é: int fflush(FILE *fp). Basicamente, a função fflush() recebe como parâmetro o ponteiro fp que determina o arquivo a ser manipulado. Como resultado, a função fflush() retorna o valor 0 (ZERO), se a operação foi realizada com sucesso; a constante EOF (em geral, -1), se houver algum erro.
O comportamento da função fflush() depende do modo como o arquivo foi aberto.
Se o arquivo apontado por fp foi aberto para escrita, os dados contidos no “buffer de saída” são gravados no arquivo;
Se o arquivo apontado por fp foi aberto para leitura, o comportamento depende da implementação da biblioteca. Em algumas implementações os dados contidos no “buffer de entrada” são apagados, mas esse não é um comportamento padrão;
Se fp for um ponteiro nulo (fp = NULL), todos os arquivos abertos são liberados.

💡 1 Resposta

User badge image

Ed Verified user icon

A função fflush() em C é usada para forçar a gravação de qualquer dado contido no "buffer" no momento em que quisermos. Ela recebe como parâmetro o ponteiro fp que determina o arquivo a ser manipulado e retorna 0 se a operação foi realizada com sucesso ou a constante EOF, em geral -1, se houver algum erro. O comportamento da função depende do modo como o arquivo foi aberto. Se o arquivo foi aberto para escrita, os dados contidos no "buffer de saída" são gravados no arquivo. Se o arquivo foi aberto para leitura, o comportamento depende da implementação da biblioteca. Em algumas implementações, os dados contidos no "buffer de entrada" são apagados, mas esse não é um comportamento padrão. Se fp for um ponteiro nulo (fp = NULL), todos os arquivos abertos são liberados.

0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais