Crystal C bindings: return type char*
I have a function with this signature: const char* get_version(); My declaration is: fun get_version(): LibC::Char* And to use it: version = MyLib.get_version() puts version # how to convert to String? How can I manage the return string? Do I have to import also strlen to measure the length of the C string and covert it to Crystal string manually?
You wrap the Char* pointer with String.new(MyLib.version). If you know the string length, you may call String.new(ptr, size) too. Note that this will copy the data from the pointer, so the C binding may release its pointer without affecting the Crystal String.
How to use union in “if” statement [Crystal]
How to convert a hex string to bytes array in Crystal?
is INSTANCE = new in class is run after compilation automatically or the first time it is accessed?
Crystal lang: understanding method return type of Void
Crystal-lang httpget basic_auth
How to control using CPU cores [Crystal]
How can I read a slice with other size in crystal?
Unix-style password readline
Cannot find -lxml2 when trying to run crystal spec
How do I access an object's eigenclass in Crystal?
Why does my code never reaches the end when waiting for pipe?
Crystal reading x bytes from file
Getting the first element of an empty Array
Errors when running Crystal Play
Shorthand block syntax in Crystal
is there a way to auto recompile with crystal (aka nodemon / supervisor )