Hello,

it also fails when creating the FILE *f = (FILE*) xmlFileOpen(
"C:\\test_data\\testxml.xml");
or using the file descriptor:

int fd = _open("C:\\test_data\\testxml.xml", _O_CREAT | _O_RDWR);

xmlOutputBufferPtr output = xmlOutputBufferCreateFd(fd, NULL);

Does anyone have an idea on where the issue could be?

Best regards,
Sylvain

On Sat, Apr 16, 2016 at 11:59 AM, Sylvain Pointeau <
sylvain.point...@gmail.com> wrote:

> hello again,
>
> I investigated a bit more with my own compiled libxml2 in debug mode, the
> stack trace is:
>
>   libxml2.dll!_invalid_parameter(const wchar_t * const expression, const
> wchar_t * const function_name, const wchar_t * const file_name, const
> unsigned int line_number, const unsigned int reserved) Line 91 C++
>   libxml2.dll!_invalid_parameter_noinfo() Line 97 C++
>   libxml2.dll!_write(int fh, const void * buffer, unsigned int size) Line
> 48 C++
> > libxml2.dll!__acrt_stdio_flush_nolock(_iobuf * public_stream) Line 152
> C++
>   libxml2.dll!_fflush_nolock(_iobuf * public_stream) Line 114 C++
>   libxml2.dll!fflush(_iobuf * stream) Line 94 C++
>   libxml2.dll!xmlFileFlush(void * context) Line 1104 C
>   libxml2.dll!xmlOutputBufferClose(_xmlOutputBuffer * out) Line 2606 C
>
> Best regards,
> Sylvain
>
>
>
> On Sat, Apr 16, 2016 at 11:25 AM, Sylvain Pointeau <
> sylvain.point...@gmail.com> wrote:
>
>> Hello,
>>
>> using
>> xmlOutputBufferPtr output = xmlOutputBufferCreateFilename("C
>> :\\myfolder\testdata.xml", 0, 0);
>> works...
>>
>> what can be wrong with xmlOutputBufferCreateFile?
>>
>> Best regards,
>> Sylvain
>>
>> On Sat, Apr 16, 2016 at 10:23 AM, Sylvain Pointeau <
>> sylvain.point...@gmail.com> wrote:
>>
>>> Hello,
>>>
>>> porting my program on windows, I noticed that xmlOutputBufferCreateFile
>>> raised a message  I/O error : Bad file descriptor. Below is the sample
>>> program that crashes for me:
>>>
>>> FILE *f = fopen("C:\\myfolder\testdata.xml", "w");
>>>
>>> xmlOutputBufferPtr output = xmlOutputBufferCreateFile(f, NULL);
>>>
>>> xmlOutputBufferWriteString(output, "WHY DO YOU CRASH?");
>>>
>>> xmlOutputBufferClose(output); <- at this moment it displays I/O error :
>>> Bad file descriptor
>>>
>>> fclose(f);
>>>
>>> I linked on libs pre-compiled for win32,
>>> I also tried with the lib I compiled myself, it even crashes in this
>>> case (it does not display IO error)
>>>
>>> Please note that the parsing (SAX) runs well.
>>>
>>> Do you have any idea? is it a bug or something I am not doing well?
>>>
>>> Best regards,
>>> Sylvain
>>>
>>
>>
>
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to