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


可変長引数リスト

引数リストに省略記号 (...) を指定することで、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.

検索式: