Парой функций SetFilePointerEx и SetEndOfFile можно изменять размер файла, но на маппированые файлы (для чтения и записи) это что-то не действует. Выходит что нужно закрывать маппирование для изменения размера. Есть-ли более оптимальные способы изменить размер маппированого файла?
s_d_f А какой смысл в этих способах? Данные увеличенного файла всё равно не будут доступны через отображение, т.к. оно не может превысить размер, указанный изначально при создании отображения. Если эти данные не нужны, то увеличить файл можно и после работы с отображением, а если нужны, то ремапить всё равно придётся. Другое дело, что SetFilePointerEx и SetEndOfFile в последнем случае не нужны, т.к. достаточно просто создать отображение с размером, превышающим размер файла.
Просто нужно не только читать/писать, но и вставлять/вырезать. А маппирование выходит хорошо только для читать/писать, ну и быть может еще вырезать.