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 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.