newSVpvs_flagsを調べてる
結局、まだ全然よくわかんないんだけど、とりあえず検索はしてみた。
で、見つかったのがこちらのページ。
Perl API の紹介
http://perldoc.jp/docs/perl/5.14.1/perlguts.pod
C からの Perl 呼び出し規約
http://perldoc.jp/docs/perl/5.18.1/perlcall.pod
XS 言語リファレンスマニュアル
http://perldoc.jp/docs/perl/5.18.1/perlxs.pod
XSUB を書くためのチュートリアル
http://perldoc.jp/docs/perl/5.18.1/perlxstut.pod
まさか、perlgutsが翻訳されていたとは・・・。
ここに、newSVpvs_flags
の記述がありました。
でも、これだけじゃ、ちょっと。
どこで出てきたかというと、前回に引き続き、
XSのひな形を作成した時に生成されたxsファイルなんですが、
#define NEED_newSVpvn_flags #include "ppport.h" MODULE = Hoge::XS PACKAGE = Hoge::XS PROTOTYPES: DISABLE void hello() CODE: { ST(0) = newSVpvs_flags("Hello, world!", SVs_TEMP); }
これで、以下のテストが通るところを見る限り、
use strict; use Test::More; use Hoge::XS; is(Hoge::XS::hello(), 'Hello, world!'); done_testing;
'Hello, world!'
が返ってきてるんですかね。
という訳で、次はこの辺を調べればいんですかね。
#define NEED_newSVpvn_flags
#include "ppport.h"
おしまい。
Leave a Comment