Perl6 から C API インタフェースが変わるようだが、RedHat ES5 上(5.8.8)で perl モジュールを作る必要が出てきたので、今更ながら XS 言語を使ってみる。
h2xa -A -n Foo
でモジュールのスケルトンを作って
cd Foo
Foo.xs を編集する。
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "ppport.h"
MODULE = Foo PACKAGE = Foo
char *
hello()
CODE:
RETVAL = "Hello, world!";
OUTPUT:
RETVAL
この例ではスタティックな文字列を返しているが、ヒープからとって返したらメモリリークするんだろうなあ...
この場合、面倒でも SV * を返すようにするべきなんだろうか?
2008年12月19日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/24545116
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/24545116
この記事へのトラックバック