Haskell FFI Question

I have been play around with Haskell FFI. My question is for ByteString (Strict) is there a trailing null append to it when pass to it C functions?

Another question is how to pass a raw buffer (binary content) from Haskell to C functions? Assume we are using ByteString as the content container in Haskell. Is there a way to convert ByteString to C void * ? On Friday, September 19, 2014 2:02:29 PM UTC+9:30, ye yan wrote:
I have been play around with Haskell FFI. My question is for ByteString (Strict) is there a trailing null append to it when pass to it C functions?

Yes, see the documentation for useAsCString [0].
[0] http://hackage.haskell.org/package/bytestring-0.10.4.0/docs/Data-ByteString....
Erik
On Fri, Sep 19, 2014 at 6:32 AM, ye yan
I have been play around with Haskell FFI. My question is for ByteString (Strict) is there a trailing null append to it when pass to it C functions?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Thank you guys, I finally make the FFI working. But I found a *interesting* https://www.google.com/search?newwindow=1&client=firefox-a&hs=3Kw&rls=org.mozilla:en-US:official&channel=sb&q=interesting&spell=1&sa=X&ei=AC4dVLXsE8n48QXj14C4CA&ved=0CBsQBSgA behavior with in my C++ side of code. I have made a simple thumbnail generation function in C++ side which include the following snippet of code ``` Blob blob; try { On Friday, September 19, 2014 4:50:57 PM UTC+9:30, Erik Hesselink wrote:
Yes, see the documentation for useAsCString [0].
[0] http://hackage.haskell.org/package/bytestring-0.10.4.0/docs/Data-ByteString....
Erik
On Fri, Sep 19, 2014 at 6:32 AM, ye yan
javascript:> wrote: I have been play around with Haskell FFI. My question is for ByteString (Strict) is there a trailing null append to it when pass to it C functions?
_______________________________________________ Haskell-Cafe mailing list Haskel...@haskell.org javascript: http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskel...@haskell.org javascript: http://www.haskell.org/mailman/listinfo/haskell-cafe

Sorry, accidentally clicked post; in haskell FFI c++ side Blob db; try { sb.update(src, src_len); } catch (Magick::Exception &error) { //do something with error } if I compile my program in to c++ program this code works perfectly fine. The exception can be handled correctly. But if link this piece of code into haskell (main is in haskell side), the exception handle code will never be triggered. However if I change the code to Blob db; try { sb.update(src, src_len); } catch (...) { //can really do any thing but tell user this function failed } the exception handle part can be triggered in this way. My question is : how can I catch exception without using (...) in Haskell FFI? On Friday, September 19, 2014 2:02:29 PM UTC+9:30, ye yan wrote:
I have been play around with Haskell FFI. My question is for ByteString (Strict) is there a trailing null append to it when pass to it C functions?
participants (2)
-
Erik Hesselink
-
ye yan