Constantes confirmar em disco

Seção específica da Microsoft

Sintaxe

#include <stdio.h>

Comentários

Essas constantes específicas da Microsoft especificam se o buffer associado ao arquivo aberto é liberado para os buffers do sistema operacional ou para o disco. O modo é incluído na cadeia de caracteres que especifica o tipo de acesso de leitura/gravação ("r", "w", "a", "r +", "w +", "+").

Os modos de confirmar em disco são os seguintes:

  • c

    Grava os conteúdos não gravados do buffer especificado no disco. Essa funcionalidade de confirmação em disco ocorre apenas em chamadas explícitas para a fflush função ou ._flushall Esse modo é útil ao lidar com dados confidenciais. Por exemplo, se o seu programa terminar após uma chamada para fflush ou _flushall, você pode ter certeza de que seus dados alcançaram os buffers do sistema operacional. No entanto, a menos que um arquivo seja aberto com a opção c, os dados podem nunca alcançar o disco se o sistema operacional terminar também.

  • n

    Grava os conteúdos não gravados do buffer especificado nos buffers do sistema operacional. O sistema operacional pode armazenar dados em cache e depois determinar o melhor momento para gravar em disco. Em muitas condições, esse comportamento gera um comportamento eficiente do programa. No entanto, se a retenção de dados for crítica (por exemplo, transações bancárias ou informações de bilhetes de aéreos), considere o uso da opção c. O modo n é o padrão.

Observação

As opções c e n não fazem parte do padrão ANSI para fopen, mas são extensões da Microsoft e não devem ser usadas quando se desejar portabilidade ANSI.

Usando o recurso de confirmação em disco com código existente

Por padrão, as chamadas para as fflush funções de biblioteca ou _flushall gravam dados em buffers mantidos pelo sistema operacional. O sistema operacional determina o momento ideal para gravar os dados no disco. O recurso confirmar em disco da biblioteca em tempo de execução permite assegurar que dados críticos sejam gravados diretamente no disco em vez de em buffers do sistema operacional. Você pode fornecer esse recurso a um programa existente sem reescrevê-lo ao vincular os arquivos-objeto a COMMODE.OBJ.

No arquivo executável resultante, chamadas para fflush gravam o conteúdo do buffer diretamente no disco e chamadas para _flushall gravam o conteúdo de todos os buffers no disco. Essas duas funções são as únicas afetadas por COMMODE.OBJ.

Fim da seção específica da Microsoft

Confira também

E/S de fluxo
_fdopen, _wfdopen
fopen, _wfopen
Constantes globais