Udostępnij za pośrednictwem


Stałe typu commit-to-disk

Specyficzne dla firmy Microsoft

Składnia

#include <stdio.h>

Uwagi

Te stałe specyficzne dla firmy Microsoft określają, czy bufor skojarzony z otwartym plikiem jest opróżniany do buforów systemu operacyjnego, czy do dysku. Tryb jest uwzględniany w ciągu określającym typ dostępu do odczytu/zapisu ("r", "w", "a", "a", "r+", "w+", "a+").

Tryby zatwierdzania na dysku są następujące:

  • C

    Zapisuje niepisaną zawartość określonego buforu na dysku. Ta funkcja zatwierdzania na dysku odbywa się tylko w przypadku jawnych wywołań funkcji fflush lub _flushall . Ten tryb jest przydatny podczas pracy z danymi poufnymi. Jeśli na przykład program zakończy działanie po wywołaniu fflush metody lub _flushall, możesz mieć pewność, że dane dotarły do buforów systemu operacyjnego. Jednak jeśli plik nie zostanie otwarty z opcją c , dane mogą nigdy nie być na dysku, jeśli system operacyjny również zakończy działanie.

  • N

    Zapisuje niepisaną zawartość określonego buforu w buforach systemu operacyjnego. System operacyjny może buforować dane, a następnie określić optymalny czas zapisu na dysku. W wielu warunkach to zachowanie sprawia, że efektywne zachowanie programu. Jeśli jednak przechowywanie danych ma kluczowe znaczenie (takie jak transakcje bankowe lub informacje o biletach lotniczych), rozważ użycie opcji c . Tryb n jest domyślny.

Uwaga

Opcje c i n nie są częścią standardu ANSI dla fopenprogramu , ale są rozszerzeniami firmy Microsoft i nie powinny być używane, gdy wymagana jest przenośność ANSI.

Używanie funkcji commit-to-disk z istniejącym kodem

Domyślnie wywołania fflush funkcji biblioteki lub _flushall zapisują dane w buforach obsługiwanych przez system operacyjny. System operacyjny określa optymalny czas zapisu danych na dysku. Funkcja commit-to-disk biblioteki czasu wykonywania umożliwia zapewnienie, że krytyczne dane są zapisywane bezpośrednio na dysku, a nie do buforów systemu operacyjnego. Tę możliwość można nadać istniejącemu programowi bez ponownego zapisywania go, łącząc pliki obiektów z comMODE.OBJ.

W wynikowym pliku wykonywalnego wywołania fflush zapisują zawartość buforu bezpośrednio na dysku, a wywołania zapisują _flushall zawartość wszystkich buforów na dysku. Te dwie funkcje są jedynymi, których dotyczy COMMODE.OBJ.

END Microsoft Specific

Zobacz też

We/Wy strumienia
_fdopen, _wfdopen
fopen, _wfopen
Stałe globalne