люди добрые, помогите!
у меня нае**нулас partition table, а на диске есть одна очень
важная партиция (ext3), на которой просто куча данных, которые мне
надо спасти. Я решил перебрать все блоки на девайсе и записать где начинается каждая из партиций, и пользуясь этими знаниями сделать fdisk. Вот что я надумал:
#include <iostream>
#include <linux/ext3_fs.h>
using namespace std;
int main(int argc, char *argv[])
{
unsigned long count=0;
int c;
while (cin){
c=cin.get();
if( c==EXT3_SUPER_MAGIC)
cout<<"*** block "<<count<<", "<<(int)c<<endl;
++count;
if(!(count%10000000)){
cout<<"read "<<count<<" and still reading"<<endl;
}
}
cout<<"no of blocks checked: "<<count-1<<endl;//the EOF is counted
return 0;
}
Проблема состоит в том что ента программа не находит ни одного подходясчего блока. Я подозреваю что проблема состоит в том что /dev/hda является block device-ом, но как исправить программу понятиа не имею.
ЗЫ: пожалуйста не говорите о томкакой я лох, что не держал бэкап partition table. сам знаю
Ответ на:
комментарий
от UncleAndy
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум C++/exceptions - деление на ноль не ловиццо, почему? (2006)
- Форум Не компилируется программа :( (2008)
- Форум C++ простая программа (2014)
- Форум C++ iostream::failbit (2005)
- Форум ofstream (2006)
- Форум Вопрос по STL (2005)
- Форум ввод/вывод вектора указателей (2013)
- Форум Проблема с компиляцией простейшего кода на GCC 4.5.2 (2012)
- Форум atof() не сохраняет точность (2005)
- Форум Не работает условие !EOF. (2004)