Symbol.new(addr, name = nil, type = nil)
type が nil でないなら 型 type の Symbol オブジェクト sym を作成する。 関数が割り当てられているなら addr はそのアドレス。type が nil なら DL::PtrData オブジェクトを返す。
型の指定には C 言語の型を表す文字で構成した文字列を使う。 文字列の 1 文字目には関数の戻り値を、 2 文字目以降には関数の引数を表す文字を順に書いていく。 型を表す文字と対応する C 言語の型は次のようになっている。
"C"
char"c"
, "s"
char *"H"
short"h"
short *"I"
int"i"
int *"L"
long"l"
long *"F"
float"f"
float *"D"
double"d"
double *"0"
void"P"
, "p"
void *"S"
const char *"a"
, "A"
[] (配列)たとえば戻り値が int、引数が const char * と long である関数の型は
"ISL"
という文字列で指定する。
Symbol.char2type(char)
型に相当する文字 char を取り、C 言語の型修飾を返す。
proto()
関数のプロトタイプを返す。
Symbol#name()
関数名を返す。
cproto(),
to_s()
C 言語形式のプロトタイプを返す。
Symbol#inspect()
人間が読みやすい形式の文字列を返す(訳注:意訳)。
call(arg1,arg2,...,argN),
self[](arg1,arg2,...,argN)
パラメータ arg1, arg2, ... argN で関数を呼び出す。結果は、戻り値 r やパラメータrs からなる。rs は配列。
to_ptr
対応する DL::PtrData オブジェクト ptr を返す。