るりまサーチ

最速Rubyリファレンスマニュアル検索!
117件ヒット [101-117件を表示] (0.100秒)

別のキーワード

  1. rbconfig ruby
  2. fiddle ruby_free
  3. fiddle build_ruby_platform
  4. rake ruby
  5. rubygems/defaults ruby_engine

ライブラリ

クラス

モジュール

キーワード

検索結果

<< < 1 2 >>

Fiddle::Importer#bind(signature, *opts) { ... } -> Fiddle::Function (3139.0)

Ruby のブロックを C の関数で wrap し、その関数をモジュールに インポートします。

...Ruby のブロックを C の関数で wrap し、その関数をモジュールに
インポートします。

これでインポートされた関数はモジュール関数として定義されます。
また、Fiddle::Importer#[] で Fiddle::Function オブジェクトとして
取り出す...
...きます。

signature で関数の名前とシネグチャを指定します。例えば
"int compare(void*, void*)" のように指定します。

opts には :stdcall もしくは :cdecl を渡すことができ、
呼出規約を明示することができます。

@return インポートし...
...@param signature 関数の名前とシネグチャ
@param opts オプション


r
equire '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(voi...

Fiddle::Function#call(*args) -> Integer|DL::CPtr|nil (179.0)

関数を呼び出します。

...出します。

Fiddle::Function.new で指定した引数と返り値の型に基いて
Ruby
のオブジェクトを適切に C のデータに変換して C の関数を呼び出し、
その返り値を Ruby のオブジェクトに変換して返します。

引数の変換は以下の通り...
...
Fiddle::Pointer は保持している C ポインタに変換されます。
文字列であればその先頭ポインタになります。
IO オブジェクトであれば FILE* が渡されます。
整数であればそれがアドレスとみなされます。
to_ptr を持って...
...::Pointer
変換したものを用います。
to_i を持っているならば、それを呼びだし結果の整数を
アドレスと見なします

: (unsigned) char/short/int/long/long long
Ruby
の整数を C の整数に変換します。

: double/float
Ruby
の整数 or...
<< < 1 2 >>