204件ヒット
[1-100件を表示]
(0.020秒)
別のキーワード
種類
- インスタンスメソッド (60)
- 特異メソッド (48)
- モジュール関数 (48)
- 定数 (24)
- クラス (24)
クラス
-
Fiddle
:: CStruct (12) -
Fiddle
:: Closure :: BlockCaller (12) -
Fiddle
:: Function (12) -
Fiddle
:: Pointer (36)
モジュール
- Fiddle (72)
-
Fiddle
:: Importer (36)
検索結果
先頭5件
-
Fiddle
:: BUILD _ RUBY _ PLATFORM -> String (6125.0) -
ビルドに用いた ruby のプラットフォームを表す文字列。
...ビルドに用いた ruby のプラットフォームを表す文字列。
通常、Object::RUBY_PLATFORM と同じ。... -
Fiddle
:: RUBY _ FREE -> Integer (6119.0) -
ruby_xfree の関数ポインタのアドレスの値。
...ruby_xfree の関数ポインタのアドレスの値。... -
Fiddle
:: Function # call(*args) -> Integer|DL :: CPtr|nil (32.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
:: Importer # union(signature) -> Class (29.0) -
C の共用体型に対応する Ruby のクラスを構築して返します。
...する Ruby のクラスを構築して返します。
共用体型を 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 "libc.so.6"
typealias("uint32_t", "unsigned int")
typealias("uint64_t", "unsigned long long")
EPollData = union(["void *ptr",
"int fd",
"uint32_t u32",......"uint64_t u64",
])
end
となります。
返されるクラスは Fiddle::CUnion を継承しています。
1.9.x ではこのメソッドで返されるクラスは正しく動作しません。
2.0以降では修正されています。
@param signature... -
Fiddle
. # dlunwrap(addr) -> object (24.0) -
指定されたアドレスの Ruby オブジェクトを返します。
...定されたアドレスの Ruby オブジェクトを返します。
@param addr Fiddle.#dlwrap が返した Ruby オブジェクトのアドレス(整数)を指定します。
例:
require 'fiddle'
s = 'abc'
p addr = Fiddle.dlwrap(s) #=> 136122440
p Fiddle.dlunwrap(addr) #=> "abc"... -
Fiddle
:: Closure :: BlockCaller (24.0) -
Ruby のブロックをラップしたコールバック関数を表すクラスです。
...Ruby のブロックをラップしたコールバック関数を表すクラスです。
Ruby のブロックを C の関数ポインタとして表現するためのクラスです。
require 'fiddle'
include Fiddle
libc = Fiddle.dlopen("/lib/libc.so.6")
qs = Fiddle::Function.new(libc["......qsort"],
[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*) であるため、
# この... -
Fiddle
:: Closure :: BlockCaller . new(ret , args , abi=Fiddle :: Function :: DEFAULT) { . . . } -> Fiddle :: Closure :: BlockCaller (18.0) -
Ruby のブロックを呼び出す Fiddle::Closure オブジェクトを返します。
...
Ruby のブロックを呼び出す Fiddle::Closure オブジェクトを返します。
args、ret で関数の引数と返り値の型を指定します。
指定は Fiddle::Function.new と同様なので、そちら
を参照してください。
@param ret 返り値の型
@param args 引数... -
Fiddle
:: Pointer # to _ value -> object (18.0) -
自身はヒープに確保された Ruby のオブジェクトを指すポインタであると仮定して、 自身が指すオブジェクトを返します。
...自身はヒープに確保された Ruby のオブジェクトを指すポインタであると仮定して、
自身が指すオブジェクトを返します。
例:
require 'fiddle'
s = 'abc'
i = Fiddle.dlwrap(s)
cptr = Fiddle::Pointer.new(i)
p cptr.to_value #=> "abc"... -
Fiddle
:: Importer # bind(signature , *opts) { . . . } -> Fiddle :: Function (17.0) -
Ruby のブロックを C の関数で wrap し、その関数をモジュールに インポートします。
...Ruby のブロックを C の関数で wrap し、その関数をモジュールに
インポートします。
これでインポートされた関数はモジュール関数として定義されます。
また、Fiddle::Importer#[] で Fiddle::Function オブジェクトとして
取り出す......す。
@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!...