У меня проблема с простым чтением из файла, который делит файловый указатель между несколькими объектами (у меня это работает только с простым istream, но не когда я использую общий указатель указателей istream).
Я пытаюсь прочитать весь файл в буфер (сам файл имеет длину в несколько строк.
Код компилируется, но выдает ошибку сегментации.
Класс, который использует shared_ptr:
RecordsSplitter::RecordsSplitter(char *filename):iStream( new ifstream(filename, ifstream::in|ifstream::binary))
{
}
string RecordsSplitter::buildRecord() {
char *buffer;
int buffer_length;
iStream->seekg (0, ios::end)_
buffer_length = iStream->tellg();
cout << buffer_length;
iStream->seekg(0, ios::beg);
iStream->read(buffer,buffer_length);
iStream->close();
cout << buffer;
return 0;
}
int main(int argc, char* argv[]) {
RecordsSplitter *splitter;
splitter = new RecordsSplitter(argv[2]);
int return_num = splitter->buildRecord();
return 0;
}