Condividi tramite


fflush

Elimina un flusso.

int fflush( 
   FILE *stream 
);

Parametri

  • stream
    puntatore a FILE struttura.

Valore restituito

fflush restituisce 0 se il buffer correttamente è stata scaricata.Il valore 0 viene restituito nei casi in cui il flusso specificato non presenta buffer o viene aperto per la lettura.un valore restituito di EOF indica un errore.

[!NOTA]

se fflush restituisce EOF, i dati possono venire persi a causa di un errore di scrittura.Quando si installa un gestore errori critico, è consigliabile attivare la memorizzazione nel buffer da a setvbuf funzione o utilizzare le routine I/O di basso livello come _open, _closee _write anziché le funzioni del flusso I/O.

Note

fflush la funzione elimina un flusso.Se il file associato stream viene aperto per output, fflush scrive al file il contenuto del buffer associato al flusso.Se il flusso viene aperto per input, fflush consente di cancellare il contenuto del buffer.fflush annulla l'effetto di qualsiasi chiamata precedente a ungetc e stream.inoltre, fflush(NULL) elimina tutti i flussi aperti per l'output.Il flusso rimane aperta dopo la chiamata.fflush non ha effetto su un flusso senza tampone.

I buffer in genere vengono gestiti dal sistema operativo, che determina il momento ottimale di scrivere automaticamente i dati su disco: quando un buffer è completo, quando un flusso chiuso, o quando un programma termina normalmente senza chiudere il flusso.La funzionalità di commit da disco della libreria di runtime consente di assicurarsi che i dati critici vengono scritti direttamente su disco anziché nel buffer del sistema operativo.Senza riscrivere un programma esistente, è possibile abilitare questa funzionalità collegamento di file oggetto del programma con COMMODE.OBJ.Nel file eseguibile risultante, chiamate a _flushall scrivere il contenuto di tutti i buffer sul disco.Solo _flushall e fflush sono interessati da COMMODE.OBJ.

Per informazioni sul controllo della funzionalità di commit da disco, vedere Flusso I/O, fopene _fdopen.

Questa funzione blocca il thread chiamante quindi è thread-safe.per una versione non di blocco, vedere _fflush_nolock.

Requisiti

Funzione

Intestazione di associazione

fflush

<stdio.h>

per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.

Esempio

// 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 );
}
  Si tratta di un test
Si tratta di un test
  Si tratta di un test
Si tratta di un test
Fornire una frase di quattro parole da scanf: Si tratta di un test
L'oggetto  corrente
is
a
test
fornire la stessa frase con ottiene: Si tratta di un test
Si tratta di un test

Equivalente .NET Framework

System:: I:: FILESTREAM:: arrossir

Vedere anche

Riferimenti

Flusso I/O

fclose, _fcloseall

_flushall

setvbuf