Perl XS は初めてで、C 関数を Perl サブルーチンに変換しようとしています。
次のC関数があります
void parse(struct parser *result, const char *string, size_t len);
このparse
関数は、へのポインタstruct parser
、文字列、および文字列の長さを受け入れます。struct parser
は次のように定義されています。
struct parser {
char *data;
long a;
long b;
long c;
};
関数はその結果をresult
引数に格納します。
この関数を Perl XS に変換したいと考えています。私がやっていることは次のようなものです:
struct parser *result
parse_xs (string)
const char* string
PREINIT:
long len = strlen(string);
CODE:
struct parser par;
parse(&par,s,len);
RETVAL = par;
OUTPUT:
RETVAL
parse_xs
このようなPerlコードで実行するように上記のコードを変更するにはどうすればよいですか
my $result = parse_xs();
print $result->data; # will print the data field from the struct.
はC 関数$result
の結果です。parse