クラス
-
Fiddle
:: Closure (11) -
Fiddle
:: Function (33) -
Fiddle
:: Handle (77) -
Fiddle
:: Pointer (55)
モジュール
-
Fiddle
:: Importer (99)
キーワード
- + (11)
- - (11)
- [] (44)
- abi (11)
- args (11)
- bind (11)
- call (11)
- close (11)
-
close
_ enabled? (11) -
create
_ value (11) -
disable
_ close (11) -
enable
_ close (11) - extern (11)
-
import
_ symbol (11) - name (11)
- struct (11)
- sym (11)
-
to
_ i (11) -
to
_ value (11) - typealias (11)
- union (11)
- value (11)
検索結果
先頭5件
-
Fiddle
:: Function # name -> nil | String (12203.0) -
関数の名前を返します。
...関数の名前を返します。
名前が定義されていない場合は nil を返します。
@see Fiddle::Function.new... -
Fiddle
:: Handle # close _ enabled? -> bool (12203.0) -
GC によるオブジェクトの回収時に self をクローズする(Fiddle::Handle#close) かどうかを真偽値で返します。
...GC によるオブジェクトの回収時に self をクローズする(Fiddle::Handle#close)
かどうかを真偽値で返します。
@see Fiddle::Handle#enable_close, Fiddle::Handle#disable_close... -
Fiddle
:: Handle # enable _ close -> nil (12203.0) -
GC によるオブジェクトの回収時に self をクローズする(Fiddle::Handle#close) ように設定します。
...GC によるオブジェクトの回収時に self をクローズする(Fiddle::Handle#close)
ように設定します。
デフォルトでは close しません。
@see Fiddle::Handle#disable_close, Fiddle::Handle#close_enabled?... -
Fiddle
:: Function # abi -> Integer (9203.0) -
呼出規約を返します。
...呼出規約を返します。
@see Fiddle::Function.new... -
Fiddle
:: Function # call(*args) -> Integer|DL :: CPtr|nil (9203.0) -
関数を呼び出します。
...関数を呼び出します。
Fiddle::Function.new で指定した引数と返り値の型に基いて
Ruby のオブジェクトを適切に C のデータに変換して C の関数を呼び出し、
その返り値を Ruby のオブジェクトに変換して返します。
引数の変換は......以下の通りです。
: void* (つまり任意のポインタ型)
nil ならば C の NULL に変換されます
Fiddle::Pointer は保持している C ポインタに変換されます。
文字列であればその先頭ポインタになります。
IO オブジェクトであれば......だし Fiddle::Pointer に
変換したものを用います。
to_i を持っているならば、それを呼びだし結果の整数を
アドレスと見なします
: (unsigned) char/short/int/long/long long
Ruby の整数を C の整数に変換します。
: double/float
Ruby... -
Fiddle
:: Handle # disable _ close -> nil (9203.0) -
GC によるオブジェクトの回収時に self をクローズしない(Fiddle::Handle#close) ように設定します。
...GC によるオブジェクトの回収時に self をクローズしない(Fiddle::Handle#close)
ように設定します。
デフォルトでは close しません。
@see Fiddle::Handle#enable_close, Fiddle::Handle#close_enabled?... -
Fiddle
:: Pointer # to _ value -> object (9103.0) -
自身はヒープに確保された Ruby のオブジェクトを指すポインタであると仮定して、 自身が指すオブジェクトを返します。
...自身はヒープに確保された Ruby のオブジェクトを指すポインタであると仮定して、
自身が指すオブジェクトを返します。
例:
require 'fiddle'
s = 'abc'
i = Fiddle.dlwrap(s)
cptr = Fiddle::Pointer.new(i)
p cptr.to_value #=> "abc"... -
Fiddle
:: Importer # value(type , val = nil) -> Fiddle :: CStruct (6302.0) -
型が type で要素名が "value" であるような構造体を 定義(Fiddle::Importer#struct)し、 その構造体のメモリを Fiddle::CStruct#malloc で確保し、 確保したメモリを保持しているオブジェクトを返します。
...alue" であるような構造体を
定義(Fiddle::Importer#struct)し、
その構造体のメモリを Fiddle::CStruct#malloc で確保し、
確保したメモリを保持しているオブジェクトを返します。
type は "int", "void*" といった文字列で型を指定します。
va......l に nil 以外を指定すると、確保された構造体に
その値を代入します。
@param type 型を表す文字列
@param val 構造体に確保される初期値
例
require 'fiddle/import'
module M
extend Fiddle::Importer
end
v = M.value("int", 32)
p v.value #......=> 32
v.value = 48
p v.value # => 48... -
Fiddle
:: Closure # args -> [Integer] (6203.0) -
引数の型を表す配列を返します。
引数の型を表す配列を返します。 -
Fiddle
:: Importer # bind(signature , *opts) { . . . } -> Fiddle :: Function (6202.0) -
Ruby のブロックを C の関数で wrap し、その関数をモジュールに インポートします。
...で wrap し、その関数をモジュールに
インポートします。
これでインポートされた関数はモジュール関数として定義されます。
また、Fiddle::Importer#[] で Fiddle::Function オブジェクトとして
取り出すことができます。
signature......"int compare(void*, void*)" のように指定します。
opts には :stdcall もしくは :cdecl を渡すことができ、
呼出規約を明示することができます。
@return インポートした関数を表す Fiddle::Function オブジェクトを返します。
@param signature......@param opts オプション
例
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
typealias "size_t", "unsigned long"
extern "int qsort(void*, size_t, size_t, void*)"
bind("int compare(void*, void*)"){|px, py|
x = px.to_s(Fiddle::SIZE...