fflush
Libera um fluxo.
int fflush(
FILE *stream
);
Parâmetros
- stream
Ponteiro a estrutura de FILE .
Valor de retorno
fflush retornará 0 se o buffer foi liberado com êxito. O valor 0 também é retornado nos casos em que o fluxo especificado não tiver nenhum buffer ou estiver aberto para somente leitura. Um valor de retorno EOF indica um erro.
Dica
Se fflush retorna EOF, os dados podem ter sido perdidos devido a uma falha de gravação.Ao configurar um manipulador de erro crítico, é mais seguro girar armazenar em buffer fora da função de setvbuf ou usar rotinas de nível baixo de E/S como _open, _close, e _write em vez de fluxo de E/S função.
Comentários
A função de fflush de um fluxo. Se o arquivo associado com stream estiver aberto para saída, fflush grava ao arquivo o conteúdo do buffer associado com o fluxo. Se o fluxo será aberto para a entrada, fflush limpa o conteúdo do buffer. fflush nega o efeito de qualquer chamada anterior a ungetc em stream. Além disso, fflush(NULL) libera todos os fluxos abertos para saída. O fluxo permanecerá aberto depois da chamada. fflush não tem nenhum efeito em um fluxo não armazenado.
Os buffers são mantidos normalmente pelo sistema operacional, que determina o tempo ótimos de gravar automaticamente os dados em disco: quando um buffer estiver concluída, quando um fluxo está fechado, ou quando um programa encerrar normalmente sem desligar o fluxo. O recurso de disco confirmação-à- da biblioteca de tempo de execução permite garantir que os dados críticos seja gravado diretamente no disco em vez de buffers do sistema operacional. Sem reescrever um programa existente, você pode habilitar esse recurso vincular os arquivos de programa do objeto com COMMODE.OBJ. No arquivo executável resultante, as chamadas para _flushall grava o conteúdo de todos os buffers em disco. Somente _flushall e fflush são afetados por COMMODE.OBJ.
Para obter informações sobre como controlar o recurso de confirmação-à- disco, consulte Fluxo de E/S, fopen, e _fdopen.
Essa função bloqueia o thread de chamada e em virtude disso é seguro para threads. Para uma versão sem bloqueio, consulte _fflush_nolock.
Requisitos
Função |
Cabeçalho necessário |
---|---|
fflush |
<stdio.h> |
Para informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.
Exemplo
// crt_fflush.c
#include <stdio.h>
#include <conio.h>
int main( void )
{
int integer;
char string[81];
// Read each word as a string.
printf( "Enter a sentence of four words with scanf: " );
for( integer = 0; integer < 4; integer++ )
{
scanf_s( "%s", string, sizeof(string) );
printf( "%s\n", string );
}
// You must flush the input buffer before using gets.
// fflush on input stream is an extension to the C standard
fflush( stdin );
printf( "Enter the same sentence with gets: " );
gets_s( string, sizeof(string) );
printf( "%s\n", string );
}
Este é um teste Isso é testThis
FakePre-6bb31700655c4eb9b350656999ae6992-4cfa18d97d724a6daad3d181164f2f7c