Costanti di Commit da Disco

Specifici di Microsoft

#include <stdio.h>

Note

Queste costanti specifiche Microsoft specificano se il buffer associato al file aperto viene scaricato sui buffer del sistema operativo o su disco.La modalità è inclusa nella stringa che specifica il tipo di accesso in lettura/scrittura ("r", "w", "a", "r+", "w+", "a+").

Le modalità di commit su disco sono le seguenti:

  • c
    Scrive su disco i contenuti non scritti del buffer specificato.Questa funzionalità di commit su disco si verifica solo per le chiamate esplicite a fflush o alla funzione _flushall.Questa modalità è utile quando si gestiscono dati sensibili.Ad esempio, se il programma termina dopo una chiamata a fflush o a _flushall, è possibile assicurarsi che i dati abbiano raggiunto i buffer del sistema operativo.Tuttavia, a meno che un file non sia stato aperto con l'opzione c, i dati potrebbero non raggiungere mai il disco se termina anche il sistema operativo.

  • n
    Scrive il contenuto non scritto del buffer specificato nei buffer del sistema operativo.Il sistema operativo può memorizzare i dati e quindi determinare un momento opportuno per scriverli sul disco.Sotto molte condizioni, questo comportamento rende efficiente il comportamento del programma.Tuttavia, se la conservazione dei dati è critica (ad esempio informazioni su transazioni bancarie o su biglietti di una compagnia aerea) è opportuno utilizzare l'opzione c.La modalità n è quella predefinita.

    [!NOTA]

    Le opzioni c e n non sono parte dello standard ANSI di fopen, ma sono estensioni Microsoft e non dovrebbero essere utilizzate nel caso sia richiesta la portabilità ANSI.

Utilizzo della funzionalità di commit su disco per il codice esistente

Per impostazione predefinita, le chiamate a fflush o alle funzioni di libreria _flushall scrivono dati nei buffer gestiti dal sistema operativo.Il sistema operativo determina il momento ottimale per scrivere effettivamente i dati su disco.La funzionalità di commit su disco della libreria di runtime consente di assicurarsi che i dati critici siano scritti direttamente su disco anziché nei buffer del sistema operativo.È possibile fornire questa funzionalità a un programma esistente senza riscriverlo collegando i relativi file oggetto con COMMODE.OBJ.

Nel file eseguibile risultante, le chiamate a fflush scrivono il contenuto del buffer direttamente su disco, e le chiamate a _flushall scrivono il contenuto di tutti i buffer su disco.Queste due funzioni sono le uniche interessate da COMMODE.OBJ.

FINE specifiche di Microsoft

Vedere anche

Riferimenti

Flusso I/O

_fdopen, _wfdopen

fopen, _wfopen

Costanti globali