Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- static char* strs[3] = { "howdy", "doody", NULL };
- extern void ptr_to_strs (char ***ptr) {
- *ptr = strs;
- }
- use v6;
- use LibraryMake;
- use NativeCall;
- sub testlib {
- state $ = do {
- my $so = get-vars('')<SO>;
- ~(%?RESOURCES{"lib/test$so"});
- }
- }
- sub ptr_to_strs(Pointer[CArray[Str]] $strs is rw) is native(&testlib)
- my Pointer[CArray[Str]] $a .= new;
- ptr_to_strs($a);
- say $a[0][0]; # howdy
- say $a[0][1]; # doody
- say $a[0][2]; # Str
- # assuming you've already got a $bus object
- sub sd_bus_list_names(Pointer, Pointer[CArray[Str]] is rw, Pointer[CArray[Str]] is rw) returns int32 is native('systemd') {*}
- my CArray[Str] $acq .= new;
- my CArray[Str] $act .= new;
- sd_bus_list_names($bus, $acq, $act);
- say $acq[0][0]; # first acquired name
Add Comment
Please, Sign In to add comment