Как предварительно выделить место для файла на C / C ++ в Windows?

Я добавляю некоторые функции к существующей базе кода, которая использует чистые функции C ( fopen , fwrite , fclose ) для записи данных в файл. К сожалению, я не могу изменить фактический механизм ввода-вывода файлов, но мне нужно предварительно выделить место для файла, чтобы избежать фрагментации (которая убивает нашу производительность во время чтения). Есть ли лучший способ сделать это, чем записывать в файл нули или случайные данные? Я знаю максимальный размер файла, когда открываю его.

Я знаю, что могу использовать fallocate в Linux, но не знаю, что такое эквивалент в Windows.

Спасибо!

17
задан George Kagan 6 November 2016 в 19:44
поделиться