Freigeben über


Konstanten für Datenträgercommit

Microsoft-spezifisch

Syntax

#include <stdio.h>

Hinweise

Diese Microsoft-spezifischen Konstanten geben an, ob der mit der geöffneten Datei verknüpfte Puffer in Betriebssystempuffer oder auf Datenträger geleert wird. Der Modus ist in der Zeichenfolge enthalten, die den Typ des Lese-/Schreibzugriffs angibt ("r", "w", "a", "r+", "w+", "a+").

Folgende Datenträgercommitmodi sind vorhanden:

  • c

    Schreibt nicht geschriebene Inhalte des angegebenen Puffers auf den Datenträger. Diese Commit-to-Disk-Funktion erfolgt nur bei expliziten Aufrufen der fflush Funktion oder der _flushall Funktion. Dieser Modus ist für den Umgang mit sensiblen Daten nützlich. Wenn Sie Ihr Programm beispielsweise nach einem Aufruf von fflush oder _flushall beenden, können Sie sicherstellen, dass Ihre Daten zu den Betriebssystempuffern gelangt sind. Wird eine Datei jedoch mit der Option c geöffnet, gelangen die Daten möglicherweise niemals zum Datenträger, wenn das Betriebssystem ebenfalls beendet wird.

  • n

    Schreibt nicht geschriebene Inhalte des angegebenen Puffers in die Betriebssystempuffer. Das Betriebssystem kann Daten zwischenspeichern und dann einen optimalen Zeitpunkt ermitteln, um Daten auf den Datenträger zu schreiben. In vielen Situationen kann dieses Verhalten ein effizientes Programmverhalten bewirken. Wenn die Aufbewahrung von Daten (z.B. Banktransaktionen oder Informationen zu Flugtickets) allerdings von entscheidender Bedeutung ist, sollten Sie eventuell die Option c verwenden. Die Standardeinstellung ist der n-Modus.

Hinweis

Die Optionen c und n sind nicht Teil des ANSI-Standards für fopen, stellen jedoch Microsoft-Erweiterungen dar und sollten nicht verwendet werden, wenn ANSI-Portabilität gewünscht ist.

Verwenden des Commit-zu-Datenträger-Features mit vorhandenem Code

Standardmäßig schreiben Aufrufe der fflush Funktionen oder _flushall Bibliotheksfunktionen Daten in Puffer, die vom Betriebssystem verwaltet werden. Das Betriebssystem ermittelt die optimale Zeit, um die Daten tatsächlich auf den Datenträger zu schreiben. Mit der Datenträgercommitfunktion der Laufzeitbibliothek können Sie sicherstellen, dass wichtige Daten direkt auf den Datenträger anstatt in die Betriebssystempuffer geschrieben werden. Sie können diese Funktion einem vorhandenen Programm ermöglichen, ohne es umschreiben zu müssen, indem Sie die Objektdateien mit COMMODE.OBJ verknüpfen.

In der resultierenden ausführbaren Datei werden die Inhalte des Puffers durch Aufrufe von fflush direkt auf den Datenträger geschrieben, während die Inhalte aller Puffer durch Aufrufe von _flushall auf den Datenträger geschrieben werden. Dies sind die einzigen beiden von COMMODE.OBJ betroffenen Funktionen.

Ende Microsoft-spezifisch

Siehe auch

Stream-E/A
_fdopen, _wfdopen
fopen, _wfopen
Globale Konstanten