最初の明快な例は、プロセスの UID を出力するために、Perl subの
PrintUID を呼びます。
sub PrintUID
{
print "UID is $<\n" ;
}
と、これを呼ぶ C 側です
void
call_PrintUID()
{
dSP ;
PUSHMARK(sp) ;
perl_call_pv("PrintUID", G_DISCARD|G_NOARGS) ;
}
単純でしょう。
この例についていくつか注意点をあげておきましょう。
G_NOARGS を指定できます。
dSP と PUSHMARK(sp) は無視してください。これ
については、次の例でお話します。
G_DISCARD を指定しています。 `PrintUID' が何か値を返すように
変更されても、 G_DISCARD を指定しておくと、 perl_ call_pv
から制御が戻るときに、その値が捨てられることになります。
G_DISCARD を指定しましたので、 perl_call_sv からの返却値を
チェックする必要はありません。常に `0' となります。
perl_call_pv が使われていますから、Perl sub は C の文字列として表
現されています。
Go to the first, previous, next, last section, table of contents.