240件ヒット
[1-100件を表示]
(0.029秒)
クラス
-
Fiddle
:: Handle (24) -
Fiddle
:: Pointer (132)
モジュール
-
Fiddle
:: Importer (84)
検索結果
先頭5件
-
Fiddle
:: Pointer # -(n) -> Fiddle :: Pointer (18109.0) -
自身のアドレスから n バイトを引いた新しい Pointer オブジェクトを返します。
...この返り値には、free 関数がセットされず、size は 0 とされます。
@param n アドレスの差分を整数で指定します。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cptr += 1
p cptr[0,1] #=> "b"
cptr -= 1
p cptr[0,1] #=> "a"... -
Fiddle
:: Pointer # -@ -> Fiddle :: Pointer (6109.0) -
自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
...の適用 &p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
p... -
Fiddle
:: Pointer # ref -> Fiddle :: Pointer (3109.0) -
自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
...の適用 &p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
p... -
Fiddle
:: Importer # bind(signature , *opts) { . . . } -> Fiddle :: Function (126.0) -
Ruby のブロックを C の関数で wrap し、その関数をモジュールに インポートします。
...インポートします。
これでインポートされた関数はモジュール関数として定義されます。
また、Fiddle::Importer#[] で Fiddle::Function オブジェクトとして
取り出すことができます。
signature で関数の名前とシネグチャを指定し......す。
@return インポートした関数を表す Fiddle::Function オブジェクトを返します。
@param signature 関数の名前とシネグチャ
@param opts オプション
例
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
typealias "si......x = px.to_s(Fiddle::SIZEOF_INT).unpack("i!")
y = py.to_s(Fiddle::SIZEOF_INT).unpack("i!")
x <=> y
}
end
data = [32, 180001, -13, -1, 0, 49].pack("i!*")
M.qsort(Fiddle::Pointer[data], 6, Fiddle::SIZEOF_INT, M["compare"])
p data.unpack("i!*") # => [-13, -1, 0, 32, 49, 1... -
Fiddle
:: Importer # extern(signature , *opts) -> Fiddle :: Function (114.0) -
Fiddle::Importer#dlload で取り込んだライブラリから C の関数をインポートします。
...
Fiddle::Importer#dlload で取り込んだライブラリから
C の関数をインポートします。
インポートした関数はそのモジュールにモジュール関数として定義されます。
signature で関数の名前とシネグチャを指定します。例えば
"int str......す。
@return インポートした関数を表す Fiddle::Function オブジェクトを返します。
@param signature 関数の名前とシネグチャ
@param opts オプション
例
require 'fiddle/import'
module M
extern Fiddle::Importer
dlload "libc.so.6"
extern "int s......trcmp(char*, char*)"
end
M.strcmp("abc", "abc") # => 0
M.strcmp("abc", "abd") # => -1... -
Fiddle
:: Pointer # [](offset) -> Integer (110.0) -
自身の指すアドレスに offset バイトを足したメモリ領域の先頭を整数として返します。
...ram offset 値を得たい領域のアドレスまでのオフセット
@raise Fiddle::DLError self の保持するポインタが NULL である場合に発生します
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
p cptr[0] #=> 97
p cptr[1] #=... -
Fiddle
:: Pointer # [](offset , len) -> String (110.0) -
自身の指すアドレスに offset バイトを足したメモリ領域の先頭 len バイトを複製し、 文字列として返します。
...。
@param len 値を得たい領域のサイズを指定します。
@raise Fiddle::DLError self の保持するポインタが NULL である場合に発生します
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
p cptr[0, 1] #=> "a"
p cptr[1, 2] #=> "bc... -
Fiddle
:: Handle # [](func) -> Integer (109.0) -
関数やグローバル変数 func へのポインタを取得し、整数として返します。
...ます。
@param func 得たいシンボルの名前を文字列で与えます。
@raise Fiddle::DLError シンボルが見つからなかった時に発生します。
require 'fiddle'
h = Fiddle::Handle.new('libc.so.6')
p h.sym('strlen') # 関数ポインタのアドレスを整数で... -
Fiddle
:: Handle # sym(func) -> Integer (109.0) -
関数やグローバル変数 func へのポインタを取得し、整数として返します。
...ます。
@param func 得たいシンボルの名前を文字列で与えます。
@raise Fiddle::DLError シンボルが見つからなかった時に発生します。
require 'fiddle'
h = Fiddle::Handle.new('libc.so.6')
p h.sym('strlen') # 関数ポインタのアドレスを整数で...