[СИ] База данных
Язык СИ
ОС 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)
- Форум базы данных (2009)
- Форум База данных (2008)
- Форум «База данных» (2006)
- Форум База данных (2005)
- Форум Базы данных (2002)
- Форум Базы данных (2004)
- Форум базы данных (2004)
- Форум файл базы данных (2017)
- Форум База данных магазина (2017)