Ошибка сегментации при создании ФАЙЛА

#c #ubuntu #segmentation-fault #libxml2 #libxslt

#c #ubuntu #ошибка сегментации #libxml2 #libxslt

Вопрос:

Я пытаюсь преобразовать XML-файл с помощью XSLT в HTML.

 #include <string.h>
#include <libxml/xmlmemory.h>
#include <libxml/debugXML.h>
#include <libxml/HTMLtree.h>
#include <libxml/xmlIO.h>
#include <libxml/DOCBparser.h>
#include <libxml/xinclude.h>
#include <libxml/catalog.h>
#include <libxslt/xslt.h>
#include <libxslt/xsltInternals.h>
#include <libxslt/transform.h>
#include <libxslt/xsltutils.h>

extern int xmlLoadExtDtdDefaultValue;

int main(int argc, char **argv) {

    int i=1;
    const char *params[1];
    xsltStylesheetPtr cur = NULL;
    xmlDocPtr doc, res;
    //FILE * ptrFile;
    //ptrFile = fopen("result.html", "r");

    params[0] = NULL;
    xmlSubstituteEntitiesDefault(1);
    xmlLoadExtDtdDefaultValue = 1;
    cur = xsltParseStylesheetFile((const xmlChar *)argv[i]);
    i  ;
    doc = xmlParseFile(argv[i]);
    res = xsltApplyStylesheet(cur, doc, params);
    xsltSaveResultToFile(stdout, res, cur);

    //fclose(ptrFile);

    xsltFreeStylesheet(cur);
    xmlFreeDoc(res);
    xmlFreeDoc(doc);

        xsltCleanupGlobals();
        xmlCleanupParser();

    return(0);

}
  

Это работает, но HTML-код отображается в консоли. Я хочу сохранить его в файл, но когда я пытаюсь создать файл «result.html » и поместите его в xsltSaveResultToFile(ptrFile, res, cur) появляется ошибка «ошибка сегментации». Что я должен сделать, чтобы это исправить?

Комментарии:

1. Если вы хотите сохранить в файл, почему вы открываете его с r флагом? Используйте w или a .

2. fopen возвращает значение null. почему?

3. Потому result.html что еще не существует.