最初の明快な例は、プロセスの 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.