るりまサーチ

最速Rubyリファレンスマニュアル検索!
132件ヒット [1-100件を表示] (0.057秒)
トップページ > クエリ:l[x] > ライブラリ:fiddle[x] > クエリ:call[x]

別のキーワード

  1. matrix l
  2. kernel $-l
  3. _builtin $-l
  4. lupdecomposition l
  5. l

モジュール

キーワード

検索結果

<< 1 2 > >>

Fiddle::Closure::BlockCaller#call(*args) -> object (30203.0)

wrap しているブロックを呼び出します。

wrap しているブロックを呼び出します。

そのブロックの返り値がこのメソッドの返り値となります。

@param args 引数

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

関数を呼び出します。

...関数を呼び出します。

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

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

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

: double/float
Ru...

Fiddle::Closure::BlockCaller (15008.0)

Ruby のブロックをラップしたコールバック関数を表すクラスです。

...す。

require 'fiddle'
include Fiddle

l
ibc = 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, [TY...
...# このブロックには DL::CPtr オブジェクトが渡される。
# そのポインタが指す先は比較している文字なので、
# DL::CPtr#to_s で1文字の文字列に変換している
x.to_s(1) <=> y.to_s(1)
}
s = "7x0cba(Uq)"
qs.call(s, s.size, 1, compare)
p...

Fiddle::Function::STDCALL -> Integer (12202.0)

Windows の stdcall 呼出規約を表します。

...Windows の stdcall 呼出規約を表します。

stdcall 呼出規約を持つ環境でのみ定義されます。

@see Fiddle::Function.new...

Fiddle::Closure::BlockCaller.new(ret, args, abi=Fiddle::Function::DEFAULT) { ... } -> Fiddle::Closure::BlockCaller (9402.0)

Ruby のブロックを呼び出す Fiddle::Closure オブジェクトを返します。

...Ruby のブロックを呼び出す Fiddle::Closure オブジェクトを返します。


args、ret で関数の引数と返り値の型を指定します。
指定は Fiddle::Function.new と同様なので、そちら
を参照してください。

@param ret 返り値の型
@param args 引数...

絞り込み条件を変える

Fiddle.last_error -> Integer (6118.0)

最後に Fiddle::Function#call で C の関数を呼び出した 結果設定された errno を返します。

...最後に Fiddle::Function#call で C の関数を呼び出した
結果設定された errno を返します。

この値はスレッドローカルです。...

Fiddle.win32_last_error -> Integer (6118.0)

最後に Fiddle::Function#call で C の関数を呼び出した 結果設定された errno を返します。

...最後に Fiddle::Function#call で C の関数を呼び出した
結果設定された errno を返します。

このメソッドは Windows 環境でのみ定義されています。

この値はスレッドローカルです。...

Fiddle::Handle.new(lib, flags=Fiddle::Handle::RTLD_LAZY|Fiddle::Handle::RTLD_GLOBAL) -> Fiddle::Handle (6108.0)

ライブラリ lib をオープンし、Handle オブジェクトとして返します。

...ライブラリ lib をオープンし、Handle オブジェクトとして返します。

ブロックを指定すれば、生成した Handle を引数としてブロックを実行します。
Handle はブロックの終りで自動的にクローズされます。

flags で dlopen(3) の第2...
...きます。
Fiddle
::Handle::RTLD_LAZY、Fiddle::Handle::RTLD_NOW
のどちらか一方を指定する必要があり、
またそれに Fiddle::Handle::RTLD_GLOBAL と OR を取ることができます。
詳しい意味は manpage(dlopen(3)) を参照してください。

@param lib ライブラ...
...@param flags フラグ
@raise Fiddle::DLError ライブラリのオープンに失敗した場合に発生します

例:

require 'fiddle'

h = Fiddle::Handle.new('libc.so.6')
i = h.sym('strlen')
func = Fiddle::Function.new(i, [Fiddle::TYPE_VOIDP], Fiddle::TYPE_INT)
p func.call("uxyz")...

Fiddle::Handle.new(lib, flags=Fiddle::Handle::RTLD_LAZY|Fiddle::Handle::RTLD_GLOBAL) {|handle| ... } -> Fiddle::Handle (6108.0)

ライブラリ lib をオープンし、Handle オブジェクトとして返します。

...ライブラリ lib をオープンし、Handle オブジェクトとして返します。

ブロックを指定すれば、生成した Handle を引数としてブロックを実行します。
Handle はブロックの終りで自動的にクローズされます。

flags で dlopen(3) の第2...
...きます。
Fiddle
::Handle::RTLD_LAZY、Fiddle::Handle::RTLD_NOW
のどちらか一方を指定する必要があり、
またそれに Fiddle::Handle::RTLD_GLOBAL と OR を取ることができます。
詳しい意味は manpage(dlopen(3)) を参照してください。

@param lib ライブラ...
...@param flags フラグ
@raise Fiddle::DLError ライブラリのオープンに失敗した場合に発生します

例:

require 'fiddle'

h = Fiddle::Handle.new('libc.so.6')
i = h.sym('strlen')
func = Fiddle::Function.new(i, [Fiddle::TYPE_VOIDP], Fiddle::TYPE_INT)
p func.call("uxyz")...

Fiddle::Closure (6032.0)

コールバック関数を表すクラスです。

...ラスです。

Ruby のメソッド(call)を C の関数ポインタとして表現するためのクラスです。

FFI の closure の wrapper です。

利用法としては、このクラスのサブクラスを作って
そのサブクラスに call メソッドを定義し、
new でオブ...
...ことで利用します。

require 'fiddle'
include Fiddle # TYPE_* を使うために include する

class Compare < Fiddle::Closure
# qsort の比較関数は 型が int(*)(void*, void*) であるため、
# このメソッドには DL::CPtr オブジェクトが渡される...
...指す先は比較している文字なので、
# DL::CPtr#to_s で1文字の文字列に変換している
def call(x, y)
x.to_s(1) <=> y.to_s(1)
end
end

l
ibc = DL.dlopen("/lib/libc.so.6")
qs = Fiddle::Function.new(libc["qsort"],
[TYPE_VOIDP,...

絞り込み条件を変える

<< 1 2 > >>