60件ヒット
[1-60件を表示]
(0.036秒)
別のキーワード
ライブラリ
- fiddle (60)
クラス
-
Fiddle
:: Handle (36)
モジュール
- Fiddle (12)
キーワード
- BlockCaller (12)
-
RTLD
_ GLOBAL (12) - new (24)
検索結果
先頭5件
- Fiddle
. # dlopen(lib) -> Fiddle :: Handle - Fiddle
:: Handle :: RTLD _ GLOBAL -> Integer - Fiddle
:: Closure :: BlockCaller - Fiddle
:: Handle . new(lib , flags=Fiddle :: Handle :: RTLD _ LAZY|Fiddle :: Handle :: RTLD _ GLOBAL) -> Fiddle :: Handle - Fiddle
:: Handle . new(lib , flags=Fiddle :: Handle :: RTLD _ LAZY|Fiddle :: Handle :: RTLD _ GLOBAL) {|handle| . . . } -> Fiddle :: Handle
-
Fiddle
. # dlopen(lib) -> Fiddle :: Handle (18207.0) -
ダイナミックライブラリ lib をロードし、 Fiddle::Handle として返します。
...ダイナミックライブラリ lib をロードし、
Fiddle::Handle として返します。
Fiddle::Handle.new(lib) と等価です。
@param lib ロードしたいライブラリを文字列で与えます。
@raise Fiddle::DLError dlopen(3) に失敗した時に発生します。... -
Fiddle
:: Handle :: RTLD _ GLOBAL -> Integer (6122.0) -
dlopen のフラグ RTLD_GLOBAL を表す定数です。
...dlopen のフラグ RTLD_GLOBAL を表す定数です。
DL::Handle.new の flags として用います。
詳しくは dlopen(3) を見てください。... -
Fiddle
:: Closure :: BlockCaller (6006.0) -
Ruby のブロックをラップしたコールバック関数を表すクラスです。
...Ruby のブロックをラップしたコールバック関数を表すクラスです。
Ruby のブロックを C の関数ポインタとして表現するためのクラスです。
require 'fiddle'
include Fiddle
libc = Fiddle.dlopen("/lib/libc.so.6")
qs = Fiddle::Function.new(libc["......sort"],
[TYPE_VOIDP, TYPE_INT, TYPE_INT, TYPE_VOIDP],
TYPE_VOID)
compare = Fiddle::Closure::BlockCaller.new(TYPE_INT, [TYPE_VOIDP, TYPE_VOIDP]){|x, y|
# qsort の比較関数は 型が int(*)(void*, void*) であるため、
# この......は DL::CPtr オブジェクトが渡される。
# そのポインタが指す先は比較している文字なので、
# DL::CPtr#to_s で1文字の文字列に変換している
x.to_s(1) <=> y.to_s(1)
}
s = "7x0cba(Uq)"
qs.call(s, s.size, 1, compare)
p s # => "()07Uabcqx"... -
Fiddle
:: Handle . new(lib , flags=Fiddle :: Handle :: RTLD _ LAZY|Fiddle :: Handle :: RTLD _ GLOBAL) -> Fiddle :: Handle (112.0) -
ライブラリ lib をオープンし、Handle オブジェクトとして返します。
...イブラリ lib をオープンし、Handle オブジェクトとして返します。
ブロックを指定すれば、生成した Handle を引数としてブロックを実行します。
Handle はブロックの終りで自動的にクローズされます。
flags で dlopen(3) の第2引......らか一方を指定する必要があり、
またそれに Fiddle::Handle::RTLD_GLOBAL と OR を取ることができます。
詳しい意味は manpage(dlopen(3)) を参照してください。
@param lib ライブラリを文字列で指定します。
@param flags フラグ
@raise Fiddle::D......LError ライブラリのオープンに失敗した場合に発生します
例:
require 'fiddle'
h = Fiddle::Handle.new('libc.so.6')
i = h.sym('strlen')
func = Fiddle::Function.new(i, [Fiddle::TYPE_VOIDP], Fiddle::TYPE_INT)
p func.call("uxyz") # => 4... -
Fiddle
:: Handle . new(lib , flags=Fiddle :: Handle :: RTLD _ LAZY|Fiddle :: Handle :: RTLD _ GLOBAL) {|handle| . . . } -> Fiddle :: Handle (112.0) -
ライブラリ lib をオープンし、Handle オブジェクトとして返します。
...イブラリ lib をオープンし、Handle オブジェクトとして返します。
ブロックを指定すれば、生成した Handle を引数としてブロックを実行します。
Handle はブロックの終りで自動的にクローズされます。
flags で dlopen(3) の第2引......らか一方を指定する必要があり、
またそれに Fiddle::Handle::RTLD_GLOBAL と OR を取ることができます。
詳しい意味は manpage(dlopen(3)) を参照してください。
@param lib ライブラリを文字列で指定します。
@param flags フラグ
@raise Fiddle::D......LError ライブラリのオープンに失敗した場合に発生します
例:
require 'fiddle'
h = Fiddle::Handle.new('libc.so.6')
i = h.sym('strlen')
func = Fiddle::Function.new(i, [Fiddle::TYPE_VOIDP], Fiddle::TYPE_INT)
p func.call("uxyz") # => 4...