У меня большой файл (несколько гигабайт), и я хочу обновить в нем небольшой раздел (перезаписать несколько байтов новым значением). Это должно быть сделано атомарно (либо операция прошла успешно, либо файл остался без изменений). Как я могу это сделать?
Цель - сохранить информацию о прогрессе в файле, который занимает много времени для генерации / загрузки (это может быть в удаленной файловой системе). Вероятно, будут времена, когда мне нужно будет писать в разных местах файла (и фиксировать все изменения сразу), но при необходимости я могу переписать весь индекс, который является непрерывным блоком и относительно небольшим по сравнению с остальной частью файла. , В каждый момент времени в файл записывается только один процесс и поток.