Sdílet prostřednictvím


fflush

Vyprázdnění datového proudu.

int fflush( 
   FILE *stream 
);

Parametry

  • stream
    Ukazatel na FILE struktury.

Vrácená hodnota

fflushVrátí hodnotu 0, pokud vyrovnávací paměť byla úspěšně vyprázdněna.V případech, ve kterých nemá žádná vyrovnávací paměť Zadaný datový proud, nebo je otevřen jen pro čtení je také vrácena hodnota 0.Vrácená hodnota EOF označuje chybu.

[!POZNÁMKA]

Pokud fflush vrátí EOF, bylo přerušeno kvůli chybě zápisu dat.Při nastavování popisovač kritických chyb, je nejbezpečnější vypnutí ukládání do vyrovnávací paměti setvbuf funkce nebo použít nízkoúrovňové I/O rutiny jako _open, _close, a _write namísto funkce proudu I/O.

Poznámky

fflush Funkce vyprázdnění datového proudu.Pokud soubor přidružen stream je otevřen pro výstup, fflush zapíše do souboru obsah vyrovnávací paměti související s datový proud.Pokud datový proud je otevřená pro vstup, fflush vymaže obsah vyrovnávací paměti.fflushNeguje efekt jakékoli předchozí volání k ungetc proti stream.Také fflush(NULL) vyprázdnění všech datových proudů otevřených pro výstup.Datový proud zůstává po volání.fflushnemá vliv na bez vyrovnávací paměti datového proudu.

Vyrovnávací paměti běžně udržovaný operační systém určuje optimální čas automaticky zapsat data na disk: Po zaplnění vyrovnávací paměti, při ukončení proudu nebo při ukončení programu normálně bez zavření proudu.Potvrzení na disk funkce knihovny runtime umožňuje zajistit zápis důležitých dat přímo na disk, nikoli vyrovnávací paměti operačního systému.Bez přepsání existujícího programu, můžete tuto funkci povolit propojením objektu soubory programu s COMMODE.OBJ.Výsledné spustitelného souboru volá _flushall disku zapsat obsah všech vyrovnávacích pamětí.Pouze _flushall a fflush jsou ovlivněny COMMODE.OBJ.

Informace o ovládání funkce potvrzení na disku naleznete v tématu Proudu v/V, fopen, a _fdopen.

Tato funkce zamkne volající vlákno a proto je podprocesu.Verze zamykání, viz _fflush_nolock.

Požadavky

Function

Požadované záhlaví

fflush

<stdio.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Příklad

// 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 );
}
  Toto je test
Toto je test
  Toto je test
Toto je test
zadejte větu čtyři slova s scanf: Toto je test
To
je
a
Test
Zadejte stejné větě se získá: Toto je test
Toto je test

Ekvivalent v rozhraní .NET Framework

System::IO::FileStream::Flush

Viz také

Referenční dokumentace

I/O proudu

fclose, _fcloseall

_flushall

setvbuf