Constantes de confirmação para disco
Específicos do Microsoft
#include <stdio.h>
Comentários
Essas constantes específicas da Microsoft especificam se o buffer associado com o arquivo aberto é liberado para buffers de sistema operacional ou em disco.O modo está incluído na seqüência de caracteres especificando o tipo de acesso de leitura/gravação ("r", "w", "a", "r" +, "w +", "+").
Os modos de confirmação em disco são da seguinte maneira:
c
Grava o conteúdo do buffer especificado não gravado em disco.Essa funcionalidade de confirmação em disco ocorre apenas em chamadas explícitas para qualquer um o fflush ou o _flushall função.Esse modo é útil ao lidar com dados confidenciais.Por exemplo, se o programa ser terminado após uma chamada para fflush ou _flushall, você pode ter certeza de que seus dados atingiu os buffers do sistema operacional.No entanto, a menos que um arquivo é aberto com o c opção, os dados podem nunca torná-lo no disco quando o sistema operacional também termina.n
Grava o conteúdo não gravado do buffer especificado buffers do sistema operacional.O sistema operacional pode armazenar dados em cache e, em seguida, determinar o momento ideal para gravar em disco.Sob várias condições, esse comportamento faz para o comportamento do programa eficiente.No entanto, se a retenção de dados é importante (como, por exemplo, transações bancárias ou informações de bilhete aéreo) considere o uso de c opção.O n modo é o padrão.Observação O c e n opções não fazem parte do ANSI padrão para fopen, mas são extensões da Microsoft e não deve ser usado onde a portabilidade do ANSI é desejada.
Usando o recurso de confirmação em disco com o código existente
Por padrão, chama o fflush ou _flushall funções de biblioteca gravar dados em buffers mantidos pelo sistema operacional.O sistema operacional determina o momento ideal para realmente gravar dados em disco.O recurso de confirmação em disco da biblioteca de tempo de execução permite assegurar que os dados críticos sejam gravados diretamente no disco em vez de buffers do sistema operacional.Você pode dar a essa capacidade a um programa existente sem reescrever a ele por meio da vinculação seus arquivos de objeto com COMMODE.OBJ.
No arquivo executável resultante, chamadas para fflush o conteúdo do buffer de gravação diretamente em disco e chamadas para _flushall o conteúdo de todos os buffers de gravação em disco.Essas duas funções são os únicos afetados por COMMODE.OBJ.
Específicos do Microsoft final