class DL::Symbol
クラスの継承リスト: DL::Symbol < Object < Kernel
要約
ダイナミックライブラリの関数を表すクラスです。
特異メソッド
char2type(char) -> String | nil
-
[TODO]
型に相当する文字 char を取り、C 言語の型修飾を返します。 char が型指定子でない場合は、nil を返します。
- [PARAM] char:
- 型指定子を文字列で与えます。
new(addr, type = nil, name = nil) -> DL::Symbol
-
[TODO]
ダイナミックライブラリの関数のアドレス addr から DL::Symbol を生成して返します。
- [PARAM] addr:
- 関数のアドレスを整数で与えます。
- [PARAM] type:
- 関数の型を型指定子を使って文字列で与えます。
- [PARAM] name:
- 関数の名前を文字列で与えます。
インスタンスメソッド
call(*args) -> object
self[*args] -> object
-
[TODO]
自身が表しているライブラリ関数を呼び出します。関数の 戻り値 result と、 call に渡された引数の配列 args = [arg1, arg2, ... argN] からなる配列 [result, args] を返します。
require 'dl' h = DL.dlopen('./libtest.so') s = h.sym('slen', 'IS') result, args = s.call('abc') p result #=> 3 p args #=> ["abc"]
/* libtest.so */ int slen(const char* s){ return strlen(s); }
cproto -> String
to_s -> String
-
C 言語形式のプロトタイプを文字列で返します。
require 'dl' h = DL.dlopen('./libtest.so') s = h.sym('slen', 'IS') p s.cproto #=> "int slen(const char *);"
inspect -> String
-
人間が読みやすい形式の文字列を返します。
name -> String
-
関数名を文字列で返します。
require 'dl' h = DL.dlopen('./libtest.so') s = h.sym('slen', 'IS') p s.name #=> "slen"
proto -> String
-
関数のプロトタイプを DL モジュールの型指定文字列で返します。
require 'dl' h = DL.dlopen('./libtest.so') s = h.sym('slen', 'IS') p s.proto #=> "IS"
to_i -> Integer
-
ダイナミックライブラリの関数のアドレスを返します。
to_ptr -> DL::PtrData
-
ダイナミックライブラリの関数へのポインタ DL::PtrData を返します。
class DL::Symbol