種類
- インスタンスメソッド (9)
- 定数 (8)
- 特異メソッド (3)
- クラス (2)
クラス
モジュール
- Fiddle (6)
-
Fiddle
:: Importer (4)
キーワード
-
ALIGN
_ LONG (1) -
ALIGN
_ LONG _ LONG (1) - CUnion (1)
- DEFAULT (1)
- Function (1)
-
SIZEOF
_ LONG (1) -
SIZEOF
_ LONG _ LONG (1) - STDCALL (1)
-
TYPE
_ LONG (1) -
TYPE
_ LONG _ LONG (1) - [] (1)
- abi (1)
- bind (1)
- call (1)
- extern (1)
- name (1)
- new (3)
- ptr (1)
-
to
_ i (1) - union (1)
検索結果
先頭5件
-
Fiddle
:: SIZEOF _ LONG _ LONG -> Integer (64207.0) -
Cでの sizeof(long long) の値
Cでの sizeof(long long) の値 -
Fiddle
:: TYPE _ LONG _ LONG -> Integer (64207.0) -
C の long long 型を表す定数。
C の long long 型を表す定数。
unsigned long long を表すには符号を逆転させます。 -
Fiddle
:: ALIGN _ LONG _ LONG -> Integer (54907.0) -
C の構造体における long long のアライメントの値。
C の構造体における long long のアライメントの値。 -
Fiddle
:: ALIGN _ LONG -> Integer (36607.0) -
C の構造体における long のアライメントの値。
C の構造体における long のアライメントの値。 -
Fiddle
:: SIZEOF _ LONG -> Integer (36607.0) -
Cでの sizeof(long) の値
Cでの sizeof(long) の値 -
Fiddle
:: TYPE _ LONG -> Integer (36607.0) -
C の long 型を表す定数。
C の long 型を表す定数。
unsigned long を表すには符号を逆転させます。 -
Fiddle
:: Importer # union(signature) -> Class (27604.0) -
C の共用体型に対応する Ruby のクラスを構築して返します。
...定義する方法は Fiddle::Importer#struct と
ほぼ同様です。C における
typedef union epoll_data
{
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
は、Ruby上では
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "li......"uint32_t u32",
"uint64_t u64",
])
end
となります。
返されるクラスは Fiddle::CUnion を継承しています。
1.9.x ではこのメソッドで返されるクラスは正しく動作しません。
2.0以降では修... -
Fiddle
:: Function # call(*args) -> Integer|DL :: CPtr|nil (27307.0) -
関数を呼び出します。
...関数を呼び出します。
Fiddle::Function.new で指定した引数と返り値の型に基いて
Ruby のオブジェクトを適切に C のデータに変換して C の関数を呼び出し、
その返り値を Ruby のオブジェクトに変換して返します。
引数の変換は......以下の通りです。
: void* (つまり任意のポインタ型)
nil ならば C の NULL に変換されます
Fiddle::Pointer は保持している C ポインタに変換されます。
文字列であればその先頭ポインタになります。
IO オブジェクトであれば......渡されます。
整数であればそれがアドレスとみなされます。
to_ptr を持っているならば、それを呼びだし Fiddle::Pointer に
変換したものを用います。
to_i を持っているならば、それを呼びだし結果の整数を
アドレスと... -
Fiddle
:: Function :: DEFAULT -> Integer (27307.0) -
デフォルトの呼出規約を表します。
...デフォルトの呼出規約を表します。
@see Fiddle::Function.new... -
Fiddle
:: Function :: STDCALL -> Integer (27307.0) -
Windows の stdcall 呼出規約を表します。
...Windows の stdcall 呼出規約を表します。
stdcall 呼出規約を持つ環境でのみ定義されます。
@see Fiddle::Function.new... -
Fiddle
:: Function (27007.0) -
C の関数を表すクラスです。
C の関数を表すクラスです。 -
Fiddle
:: CUnion (27004.0) -
C の共用体を表すクラスです。
...C の共用体を表すクラスです。
このクラスは直接は使わず、Fiddle::Importer#union を用いて
このクラスを継承したクラスを生成し、それを利用します。
Fiddle::CStruct と同様の構造をしています。詳しくはそちらを見てください... -
Fiddle
:: Closure :: BlockCaller . new(ret , args , abi=Fiddle :: Function :: DEFAULT) { . . . } -> Fiddle :: Closure :: BlockCaller (19207.0) -
Ruby のブロックを呼び出す Fiddle::Closure オブジェクトを返します。
...Ruby のブロックを呼び出す Fiddle::Closure オブジェクトを返します。
args、ret で関数の引数と返り値の型を指定します。
指定は Fiddle::Function.new と同様なので、そちら
を参照してください。
@param ret 返り値の型
@param args 引数... -
Fiddle
:: Function . new(ptr , args , ret _ type , abi=Fiddle :: Function :: DEFAULT , name: nil) -> Fiddle :: Function (19207.0) -
ptr (関数ポインタ)から Fiddle::Function オブジェクトを 生成します。
...ptr (関数ポインタ)から Fiddle::Function オブジェクトを
生成します。
ptr には Fiddle::Handle から Fiddle::Handle#sym などで取りだした
関数ポインタ(を表す整数)、もしくは関数を指している
Fiddle::Pointer を渡します。
args、ret_type で関......* Fiddle::TYPE_VOID
* Fiddle::TYPE_VOIDP
* Fiddle::TYPE_CHAR
* Fiddle::TYPE_SHORT
* Fiddle::TYPE_INT
* Fiddle::TYPE_LONG
* Fiddle::TYPE_LONG_LONG
* Fiddle::TYPE_FLOAT
* Fiddle::TYPE_DOUBLE
* Fiddle::TYPE_INTPTR_T
* Fiddle::TYPE_UINTPTR_T
* Fiddle::TYPE_PTRDIFF_T
* Fiddle::T......E_SIZE_T
* Fiddle::TYPE_SSIZE_T
abi で呼出規約を指定します。
* Fiddle::Function::DEFAULT
* Fiddle::Function::STDCALL
のどちらかを指定します。
require 'fiddle'
h = Fiddle::Handle.new('libc.so.6')
func = Fiddle::Function.new(h.sym("strlen"), [Fiddle::TYPE_VOID... -
Fiddle
:: Function # ptr -> Integer | Fiddle :: Function (18607.0) -
関数ポインタを返します。
...関数ポインタを返します。
Fiddle::Function.new の第1引数として指定したものを返します。... -
Fiddle
:: Function # name -> nil | String (18307.0) -
関数の名前を返します。
...関数の名前を返します。
名前が定義されていない場合は nil を返します。
@see Fiddle::Function.new... -
Fiddle
:: Function # abi -> Integer (18007.0) -
呼出規約を返します。
...呼出規約を返します。
@see Fiddle::Function.new... -
Fiddle
:: Function # to _ i -> Integer (18007.0) -
関数ポインタのアドレスを整数で返します。
...関数ポインタのアドレスを整数で返します。
@see Fiddle::Function#ptr... -
Fiddle
:: Closure . new(ret , args , abi=Fiddle :: Function :: DEFAULT) -> Fiddle :: Closure (9907.0) -
そのクラスの call メソッドを呼びだすような Fiddle::Closure オブジェクトを返します。
...そのクラスの call メソッドを呼びだすような
Fiddle::Closure オブジェクトを返します。
args、ret で関数の引数と返り値の型を指定します。
指定は Fiddle::Function.new と同様なので、そちら
を参照してください。
@param ret 返り値... -
Fiddle
:: Importer # [](name) -> Fiddle :: Function|nil (9604.0) -
Fiddle::Importer#extern でインポートした関数の Fiddle::Function オブジェクト を返します。
...Fiddle::Importer#extern でインポートした関数の
Fiddle::Function オブジェクト
を返します。
name という名前の関数が存在しない場合は nil を返します。
@param name 関数の名前の文字列... -
Fiddle
:: Importer # bind(signature , *opts) { . . . } -> Fiddle :: Function (9604.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......are(void*, void*)"){|px, py|
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!... -
Fiddle
:: Importer # extern(signature , *opts) -> Fiddle :: Function (9604.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...