[PD-dev] How to use the return value of the function canvas_open()?

Pierre Guillot guillotpierre6 at gmail.com
Sat Aug 25 09:28:56 CEST 2018


Thanks a lot! It works perfectly!

Le ven. 24 août 2018 à 21:43, IOhannes m zmölnig <zmoelnig at iem.at> a écrit :

> On 8/24/18 6:01 PM, Pierre Guillot wrote:
> > Hi,
> >
> > I use the canvas_open() function to locate a file (FAUST DSP file) but I
> > don't understand if I should use the close() function on the returning
> > value:
> >
> >
> > int fd = canvas_open(...);
> > if(fd >= 0)
> > {
> >     close(fd);
> > }
> >
> > This code works well on Linux and Mac but it crashes on Windows. I looked
> > at other uses of the canvas_open() function but they differ. The close()
> > function is used, in the binbuf_read_via_canvas() function (l. 850 of
> > m_binbuf.c) or in the open_soundfile_via_canvas() function (l. 494 of
> > d_soundfile.c). But the returning value is not closed in the bonk_read()
> > function (l. 985 of bonk~.c) or the garray_read() function (l. 1096 of
> > g_array.c).
> >
> > Is there one case where I should call the close() function and another
> not.
> > Or is there an error in some of these example? Am I missing something
> > important
>
> use sys_close().
> depending on the libc you are linking your external against and the libc
> Pd is linked to, the filedescriptors returned by canvas_open() might not
> be compatible with close().
> sys_close() uses the correct one.
>
> fgmrdsa
> IOhannes
>
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at lists.iem.at
> https://lists.puredata.info/listinfo/pd-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20180825/5f1bd033/attachment.html>


More information about the Pd-dev mailing list