引数リストに省略記号 (...)
を指定することで、XSUB は可変長の引数
リストを持てるようになります。省略記号のこの使い方は、ANSI C のものと同
様です。xsubpp コンパイラが、すべてのXSUB に用意している変数 items を調
べることで、XSUB に渡された引数の数を知ることができます。この仕組みを使っ
て、大きさのわからない引数のリストを受け取る XSUB を作ることができます。
rpcb_gettime()
XSUB の host 引数は省略できますから、XSUB が可変個
数の引数をとれることを示すために、省略記号を使うことができます。Perl は、
この XSUB を次のどちらかの形式で呼び出すことができます。
$status = rpcb_gettime( $timep, $host ); $status = rpcb_gettime( $timep );
省略記号を持つ XS コードです。
bool_t rpcb_gettime(timep, ...) time_t timep = NO_INIT CODE: { char *host = "localhost"; if( items > 1 ) host = (char *)SvPV(ST(1), na); RETVAL = rpcb_gettime( host, &timep ); } OUTPUT: timep RETVAL
Go to the first, previous, next, last section, table of contents.