On 25.05.2016 17:35, Fernando Santagata wrote:
> Hello,
> Please excuse my naivety, I'm trying to use NativeCall to interface a
> Perl6 program with a C library and I have a problem mapping a char **
> argument.
> The C function has this prototype:
> void function(char **arg1, char **arg2);
> I read that declaring a sub with Str rw parameters would do the trick:
> sub test(Str $arg1 is rw, Str $arg2 is rw) is native('mylibrary') { * }
> When I use the imported test function:
> my Str ($arg1, $arg2);
> test($arg1, $arg2);
> say $arg1, $arg2;
> what appears is just
> (Str)(Str)

In my experience, "is rw" doesn't always work, and I have no idea when
or why.

In DBIish (a DB interface with backends for PostgreSQL, mysql, sqlite3
and Oracle, iirc) we tend to use CArray[Str] for the parameters, see for


Reply via email to