Go to the first, previous, next, last section, table of contents.


インタフェースの戦略

Perl と C ライブラリの間のインタフェースを設計する段階では、ほとんどの場 合、C から XS への直訳で十分です。そのインタフェースは、多くは C 風のも のとなり、特に C の関数が引数を変更するようなときには、直感的とはいえな いものとなります。もっと Perl 風なインタフェースを作りたい場合には、イン タフェースが、どちら寄りに傾くかを左右するような部分を特定するのに、以下 のような戦略をとると良いでしょう。

引数を変更する C 関数を見つけること。こういった関数の XSUB は、Perl へリ ストを返すようにし、失敗時には `undef' や空リストを返すようにするこ とができるでしょう。

C と XSUB の関数のみで使用される値を見つけなさい。Perl 側でその値の中身 に触れる必要がないのであれば、その値を C からPerl へ変換する必要もありま せん。

C の関数の引数リストと返却値から、ポインタを探しなさい。ポインタによって は、XS で変数名に単項演算子 & を付けて扱うことができますし、型名 に * 演算子を使わなければならないものもあります。一般に、 & 演算子で処理する方が簡単です。

C の関数で使われる構造体を特定しなさい。多くの場合、そのような構造体が bless されたオブジェクトとして Perl から扱えるように、 `T_PTROBJ typemap' をこの構造体に使うとよいでしょう。


Go to the first, previous, next, last section, table of contents.

検索式: