int ppl_version(const char** p)
On Tuesday, February 17, 2015 at 5:38:36 PM UTC-5, Stefan Karpinski wrote: > > What is the signature of the ppl_version C function? > > On Tue, Feb 17, 2015 at 5:23 PM, Zenna Tavares <[email protected] > <javascript:>> wrote: > >> I am attempting to wrap the Parma Polyhedron Primitive Library. >> >> It has a function 'ppl_version' which modifies a set of strings, >> represented as a char **. An example function which calls 'ppl_version' is >> as follows: >> >> get_ppl_version() { >> const char* p; >> (void) ppl_version(&p); >> return p; >> } >> >> >> My Julia attempt is as follows: >> >> function get_ppl_version() >> versionnum = Array{Uint8}[Array(UInt8, 20) for i = 1:4] >> res = ccall((:ppl_version, "libppl_c"), Int, (Ptr{Ptr{Uint8}},), >> versionnum) >> bytestring(convert(Ptr{Uint8}, versionnum[1])) >> end >> >> However, I get gobbledygook back >> >> @show get_ppl_version() >> =>$(Expr(:call, :ppl_version)) => "Xٮ\n" >> >> Actually the result is non-deterministic, evaluating it a few times gives >> very strange results, e.g. ""set_bigfloat_roundin", "isppl_initialzied", >> ec. which seems to be random mix of my julia soure-code and c code from >> the api itself. I'm not sure how that is even possible. What am I doing >> wrong? >> >> Thanks >> > >
