Чтобы сделать двоичный сравнитель, я пытаюсь прочитать в двоичном содержимом двух файлов с помощью функции CreateFileW. Тем не менее, это приводит к тому, что весь файл буферизуется в память, и это становится проблемой для больших (500 МБ) файлов.Чтение двоичных файлов без буферизации всего файла в памяти в C++
Я просмотрел другие функции, которые позволят мне просто заполнить часть файла, но я не нашел никакой документации, в которой конкретно указано, как работает буфер для этих функций (я немного новичок в это так, возможно, мне не хватает очевидного).
Пока что лучший совпадение, похоже, я нашел ReadFile. Кажется, у него есть определенный буфер, но я не совсем уверен, что не будет другого буфера, реализованного за кулисами, например, с CreateFileW.
У вас есть какие-либо данные о том, что было бы хорошей функцией для использования?
Почему вы считаете, что 'CreateFile' перезагружает весь файл в память? –
@pavel имеет хорошую точку. CreateFileW не сохраняет весь файл в памяти. Это в значительной степени просто создает дескриптор файла. Вы можете использовать дескриптор для чтения всего файла или частей файла - по вашему выбору. – leeeroy
Вы правы, я только что понял, что код, который я смотрел, вручную хранил все в памяти, отсюда и гигантский след. Так что это то, что вам нравится иметь дело с устаревшим кодом, grr ... –