Liberando dados de E/S System-Buffered para o disco
O Windows armazena os dados em operações de leitura e gravação de arquivos em buffers de dados mantidos pelo sistema para otimizar o desempenho do disco. Quando um aplicativo grava em um arquivo, o sistema geralmente armazena os dados em buffer e grava os dados no disco regularmente. Um aplicativo pode forçar o sistema operacional a gravar o conteúdo desses buffers de dados no disco usando a função FlushFileBuffers . Como alternativa, um aplicativo pode especificar que as operações de gravação devem ignorar o buffer de dados e gravar diretamente no disco definindo o sinalizador FILE_FLAG_NO_BUFFERING quando o arquivo é criado ou aberto usando a função CreateFile .
Se houver dados no buffer interno quando o arquivo for fechado, o sistema operacional não gravará automaticamente o conteúdo do buffer no disco antes de fechar o arquivo. Se o aplicativo não forçar o sistema operacional a gravar o buffer no disco antes de fechar o arquivo, o algoritmo de cache determinará quando o buffer é gravado.
Observação
Acessar um buffer de dados enquanto uma operação de leitura ou gravação está usando pode corromper o buffer. Os aplicativos não devem ler, gravar, realocar ou liberar o buffer de dados que uma operação de leitura ou gravação está usando até que a operação seja concluída.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de