Запись и чтение в файл , разные указатели
От: morgot  
Дата: 18.10.24 21:36
Оценка:
Пишу программу, что-то вида базы данных. Если по простому, то она должна читать/писать по определенному смещению (допустим, первая запись, десятая), и — в хидер. Проблема в том, что это не атомарная операция, т.е. может быть так, что я пишу по смещению 0x200 (запись), а потом перехожу к хидеру (скажем, 0x800000 ), и в это время случается сбой. Первый WriteFile успешно завершится, а второй — нет. Как быть?

1. Пробовал маппинг, не вышло, там проблемы с секциями, выравниванием, в общем проще забить.
2. Транзакции — мс не рекомендует их в ОС выше восьмерки, как понимаю уберут в ядро или вообще.
3. Писать во временный файл и потом replacefile — база огромная, да и накладно ради 1 операции копировать туда сюда много данных.

Посоветуйте что-нибудь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.