[PD-dev] How to use the return value of the function canvas_open()?
IOhannes m zmölnig
zmoelnig at iem.at
Fri Aug 24 21:41:25 CEST 2018
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20180824/451843d5/attachment.sig>
More information about the Pd-dev
mailing list