Thanks Yves for the reply.
The link provided by you is very helpful.
Thank you very much.
Regards,
Rajendra
(Sorry for the double post)
Forget about ByteString.Char8: it doesn't handle unicode as it truncates characters.
Going from String to bytestring is easy thanks to the utf8-string (http://hackage.haskell.org/packages/archive/utf8-string/0.3.7/doc/html/Codec-Binary-UTF8-String.html) package and pack function from Data.ByteString(.Lazy).
And if you want to convert your String directly to a CString (a Ptr CChar) you better use Foreign.C.String.withCString.Le 22 mars 2012 15:17, Yves Parès <yves.pares@gmail.com> a écrit :
This joins the question I asked two days ago here. (See http://haskell.1045720.n5.nabble.com/Quickest-way-to-pass-Text-to-C-code-td5582223.html)
Hope that helps.Le 22 mars 2012 15:10, rajendra prasad <rajendradprasad@gmail.com> a écrit :
_______________________________________________Hi,
I have just started learning Haskell FFI. I am trying to send a string from hastell to a C function. For this, I am required to convert the haskell string to byte string. I have two methods to achieve this task. Both are listed below:
1) import Foreign.C.String
let arg1 = map castCharToCChar "Hello" :: [CChar]
2) import qualified Data.ByteString.Char8 as B
f = B.pack "Hello"
I just wanted to know the optimal way to achieve this task. Please suggest the optimal way of doing this. If there is any other way, please share it.
Also, please suggest me any good tutorial to start with Haskell FFI for C/C++.
Thank you very much.
Regards,
Rajendra
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe