[СИ] База данных
Язык СИ
ОС UNIX
Хотелось бы написать простую специализированную
базу данных.
Под специализированной понимается:
не универсальная, для конкретного приложения.
Отсюда и ожидаемая простота.
Много чего не понимаю. Вот первая тестовая задача:
Задача 1.
Имеется файл-счетчик count.txt малой длины (100 байт).
и некая программа, время от времени наращивающая
этот счетчик.
Требуется: переделать так, чтобы при мягком сбое (отключение питания)
не потерять счетчик.
Думал - думал и ничего лучше не придумал,
кроме следующего.
Создаю два равнозначных файла-счетчика,
дублирующих друг друга.
count_1.txt
count_2.txt
Формат файла такой
count=4; st_tr=36; ks=123345
где
count=4; -основной счетчик;
st_tr=36; -вспомогательный кольцевой счетчик наращиваний,
например, после 99 следующее число 0;
ks=123345 -контрольная сумма.
Наращивание делать так:
-читаем каждый из этих файлов, проверяем контрольные суммы
и совпадение данных в обоих файлах;
Далее по одной из четырех ветвей
-если все в порядке, то изменяем данные и перезаписываем
эти два файла. Дождать, когда они окажутся на диске. Вот и всё.
-если файлы отличаются, и в одном из них правильная ks,
то восстановить, т. е. скопировать правильный в не правильный,
дождать, когда он
окажется на диске (как проверить - не ведомо), затем
нарастить счетчики в обоих файлах.
-если файлы отличаются, и в каждом правильная ks, лучшим из них
считать тот, у которого больше (по кольцу) вспомогательный
счетчик, сделать восстановление, затем нарастить оба.
-другие варианты считать не подлежащими восстановлению.
В чем я заблуждаюсь?
Кто знает прошу ответить.
←
1
2
→
Ответ на:
комментарий
от ipc
Ответ на:
комментарий
от oleg_2
Ответ на:
комментарий
от azure
Ответ на:
комментарий
от Eddy_Em
Ответ на:
комментарий
от azure
Ответ на:
комментарий
от Eddy_Em
Ответ на:
комментарий
от oleg_2
Ответ на:
комментарий
от const86
Ответ на:
комментарий
от oleg_2
Ответ на:
комментарий
от Eddy_Em
Ответ на:
комментарий
от linuxfan
Ответ на:
комментарий
от oleg_2
Ответ на:
комментарий
от oleg_2
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от Eddy_Em
Ответ на:
комментарий
от oleg_2
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от linuxfan
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от oleg_2
Ответ на:
комментарий
от const86
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от Eddy_Em
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от linuxfan
Ответ на:
комментарий
от Eddy_Em
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от Neksys
Ответ на:
комментарий
от Neksys
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от Neksys
Ответ на:
комментарий
от ddos3
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум База данных (2011)
- Форум База данных (2008)
- Форум базы данных (2009)
- Форум База данных (2005)
- Форум Базы данных (2002)
- Форум базы данных (2004)
- Форум Базы данных (2004)
- Форум «База данных» (2006)
- Форум Децентрализованная база данных (2016)
- Форум файл базы данных (2017)