Konstanty potvrzení na disk
Specifické pro Microsoft
Syntaxe
#include <stdio.h>
Poznámky
Tyto konstanty specifické pro Microsoft určují, zda je vyrovnávací paměť přidružená k otevřenému souboru vyprázdněna do vyrovnávací paměti operačního systému nebo na disk. Režim je součástí řetězce určující typ přístupu pro čtení a zápis ("r", "w", "a", "r+", "w+", "a+").
Režimy zápisu na disk jsou následující:
c
Zapíše nepřepsaný obsah zadané vyrovnávací paměti na disk. Tato funkce zápisu na disk se provádí pouze při explicitních voláních
fflush
funkce nebo_flushall
funkce. Tento režim je užitečný při práci s citlivými daty. Pokud se například program ukončí po volánífflush
nebo_flushall
, můžete mít jistotu, že vaše data dosáhla vyrovnávací paměti operačního systému. Pokud se ale soubor neotevře s možností c , nemusí se data nikdy dostat na disk, pokud se operační systém také ukončí.n
Zapíše nepřepsaný obsah zadané vyrovnávací paměti do vyrovnávací paměti operačního systému. Operační systém může ukládat data do mezipaměti a pak určit optimální čas zápisu na disk. Za mnoha podmínek toto chování zajišťuje efektivní chování programu. Pokud je však uchovávání dat důležité (například bankovní transakce nebo informace o letenkách letecké společnosti), zvažte použití možnosti c . N režim je výchozí.
Poznámka:
Možnosti c a n nejsou součástí standardu ANSI pro fopen
, ale jedná se o rozšíření Microsoftu a nemělo by se používat tam, kde je požadovaná přenositelnost ANSI.
Použití funkce commit-to-disk s existujícím kódem
Ve výchozím nastavení volání funkcí knihovny nebo _flushall
funkcí zapisují fflush
data do vyrovnávací paměti udržované operačním systémem. Operační systém určuje optimální dobu, kdy se data skutečně zapisuje na disk. Funkce zápisu na disk knihovny za běhu umožňuje zajistit, aby se důležitá data zapisují přímo na disk, a ne do vyrovnávací paměti operačního systému. Tuto funkci můžete udělit existujícímu programu, aniž byste ji museli přepisovat propojením souborů objektů s COMMODE.OBJ.
Ve výsledném spustitelném souboru volání zapisují fflush
obsah vyrovnávací paměti přímo na disk a volání pro _flushall
zápis obsahu všech vyrovnávacích pamětí na disk. Tyto dvě funkce jsou jedinými funkcemi ovlivněnými COMMODE.OBJ.
END Microsoft Specific
Viz také
Vstupně-výstupní operace streamu
_fdopen
, _wfdopen
fopen
, _wfopen
Globální konstanty