Решение не плохое. Допустим, если резервировать в файле место заранее, а за тем производить дорезервацию, если объём зарезервированного места сократился до определённого объёма, то в принципе частого потребления циклов перезаписи можно избежать. Информацию о резервной памяти можно хранить со сдвигами в хедере файла. Если не ошибаюсь таким же образом работает структура файла СУБД SQLite.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.