LINUX.ORG.RU

Segmentation fault при создании fstream :-( ???


0

0

Полная х-ня.

Есть so-шка, написанная на С++, которая цепляется к питону через swig, и из под питона рулится.

Создается объект, начинаются дергатся разные методы. Один из методов, out2gp, открывает файл на дополнение и льет туда данные в три колонки цифр, потом закрывает. Первый вызов он отрабатывает нормально, второй раз при открытии файла вылетает с Segmentation fault.

После перекомпиляции первый запуск приложения - все работает. ВТорой запуск - см.выше. Если открывать не на дополнение а просто так - та же х-ня. Если каждый раз открывать НОВЫЙ ФАЙЛ - первый файл создается нормально, второй создается но возврат из констурктора не происходит - Segmentation fault. Причем даже после компиляции...

код типа:

std::oftream f=(fname);

кто то что то может сказать по этому поводу???

★★★★★

>std::oftream f=(fname);

да ты показал просто кучу кода,
из него сразу можно понять в чем проблема,

а
std::ofstream f(fname);
if (!f) std::cerr<<"error"<<std::endl;

не пробовали писать?

anonymous
()

>std::oftream f=(fname);

вполне возможный сценарий следущий,
по сути вы в этой строчки вместо того чтобы создать
один объект создаете два (fname) - первый объект,
потом f=... копируете его во второй,
если первый файл открылся с ошибками, то при копирование может выброситься
исключение, если его не обработать то segfault.

anonymous
()
Ответ на: комментарий от anonymous

ище раз - выход из коструктора не происходит! потом можно хоть чего писать, поздно уже.

AIv ★★★★★
() автор топика
Ответ на: комментарий от anonymous

const cahr * fname --- аргумент метода.

AIv ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Всем спасибо, вопрос закрыт. мазал пойтером мимо области в совсем друхом месте.. и видимо сохатил что то важное. копи-паст маст дай.

AIv ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.