るりまサーチ (Ruby 2.4.0)

最速Rubyリファレンスマニュアル検索!
25件ヒット [1-25件を表示] (0.016秒)
トップページ > バージョン:2.4.0[x] > クエリ:Fiddle[x] > クエリ:Function[x]

別のキーワード

  1. fiddle new
  2. fiddle []
  3. fiddle to_i
  4. fiddle malloc
  5. fiddle free

ライブラリ

モジュール

キーワード

検索結果

Fiddle.last_error -> Integer (63097.0)

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

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

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

Fiddle.win32_last_error -> Integer (63097.0)

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

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

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

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

Fiddle::Function (63001.0)

C の関数を表すクラスです。

C の関数を表すクラスです。

Fiddle::Function.new(ptr, args, ret_type, abi=Fiddle::Function::DEFAULT, name: nil) -> Fiddle::Function (19813.0)

ptr (関数ポインタ)から Fiddle::Function オブジェクトを 生成します。

ptr (関数ポインタ)から Fiddle::Function オブジェクトを
生成します。

ptr には Fiddle::Handle から Fiddle::Handle#sym などで取りだした
関数ポインタ(を表す整数)、もしくは関数を指している
Fiddle::Pointer を渡します。

args、ret_type で関数の引数と返り値の型を指定します。これには以下の
定数が利用できます。「-TYPE_INT」 のように符号を反転させると unsigned を
意味します。
* Fiddle::TYPE_VOID
* Fiddle::TYPE_VOIDP
* Fidd...

Fiddle::Function#ptr -> Integer | Fiddle::Function (18643.0)

関数ポインタを返します。

関数ポインタを返します。

Fiddle::Function.new の第1引数として指定したものを返します。

絞り込み条件を変える

fiddle (18433.0)

*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。

*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。

dl と同等の機能を持ちますが、
dl は 2.0 以降deprecated となり、2.2.0 で削除されました。このライブラリ
を代わりに使います。

=== 使い方

通常は fiddle/import ライブラリを require して
Fiddle::Importer モジュールを使用します。
Fiddle モジュール自体はプリミティブな機能しか提供していません。
Fiddle::Importer モジュールは以下のようにユーザが定義した
モジュールを拡張する形で使います。

require ...

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

関数を呼び出します。

関数を呼び出します。

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

引数の変換は以下の通りです。

: void* (つまり任意のポインタ型)
nil ならば C の NULL に変換されます
Fiddle::Pointer は保持している C ポインタに変換されます。
文字列であればその先頭ポインタになります。
IO オブジェクトであれば FILE* が渡されます。
整数であればそれがアドレスとみ...

Fiddle::Function#abi -> Integer (18037.0)

呼出規約を返します。

呼出規約を返します。

@see Fiddle::Function.new

Fiddle::Function#name -> nil | String (18037.0)

関数の名前を返します。

関数の名前を返します。

名前が定義されていない場合は nil を返します。

@see Fiddle::Function.new

Fiddle::Function#to_i -> Integer (18037.0)

関数ポインタのアドレスを整数で返します。

関数ポインタのアドレスを整数で返します。

@see Fiddle::Function#ptr

絞り込み条件を変える

Fiddle::Function::DEFAULT -> Integer (18037.0)

デフォルトの呼出規約を表します。

デフォルトの呼出規約を表します。

@see Fiddle::Function.new

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

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

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

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

@see Fiddle::Function.new

Fiddle::Handle.new(lib, flags=Fiddle::Handle::RTLD_LAZY|Fiddle::Handle::RTLD_GLOBAL) -> Fiddle::Handle (10099.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))...

Fiddle::Handle.new(lib, flags=Fiddle::Handle::RTLD_LAZY|Fiddle::Handle::RTLD_GLOBAL) {|handle| ... } -> Fiddle::Handle (10099.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))...

Fiddle::Closure.new(ret, args, abi=Fiddle::Function::DEFAULT) -> Fiddle::Closure (9994.0)

そのクラスの call メソッドを呼びだすような Fiddle::Closure オブジェクトを返します。

そのクラスの call メソッドを呼びだすような
Fiddle::Closure オブジェクトを返します。

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

@param ret 返り値の型
@param args 引数の型を表す配列
@param abi 呼出規約

絞り込み条件を変える

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

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

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


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

@param ret 返り値の型
@param args 引数の型を表す配列
@param abi 呼出規約

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

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

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

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

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

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

@return インポートした関数を表す ...

Fiddle::Importer#[](name) -> Fiddle::Function|nil (9751.0)

Fiddle::Importer#extern でインポートした関数の Fiddle::Function オブジェクト を返します。

Fiddle::Importer#extern でインポートした関数の
Fiddle::Function オブジェクト
を返します。

name という名前の関数が存在しない場合は nil を返します。

@param name 関数の名前の文字列

Fiddle::Importer#extern(signature, *opts) -> Fiddle::Function (9727.0)

Fiddle::Importer#dlload で取り込んだライブラリから C の関数をインポートします。

Fiddle::Importer#dlload で取り込んだライブラリから
C の関数をインポートします。

インポートした関数はそのモジュールにモジュール関数として定義されます。

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

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

@return インポートした関数を表す Fiddle::Function オブジェクトを返します。

@param signature 関数...

Fiddle::Pointer.malloc(size, free = nil) -> Fiddle::Pointer (9340.0)

与えられた長さ size のメモリ領域を確保し、それを表す Pointer オブジェクトを生成して返します。

与えられた長さ size のメモリ領域を確保し、それを表す Pointer オブジェクトを生成して返します。

@param size 確保したいメモリ領域のサイズを整数で指定します。

@param free GC 時に呼ばれる Pointer オブジェクトの free 関数を
Fiddle::Function オブジェクトか整数で指定します。

絞り込み条件を変える

Fiddle::Pointer.new(addr, size = 0, free = nil) -> Fiddle::Pointer (9340.0)

与えられた addr が指すメモリ領域を表す Pointer オブジェクトを生成して返します。

与えられた addr が指すメモリ領域を表す Pointer オブジェクトを生成して返します。

size を指定した場合、アドレス addr に確保されているメモリ領域のサイズは
size であると仮定されます。GC は free 関数を使用してメモリを解放します。

@param addr 生成する Pointer オブジェクトが指すアドレスを整数で指定します。

@param size 生成する Pointer オブジェクトが指すメモリ領域のサイズを整数で指定します。

@param free GC 時に呼ばれる free 関数を Fiddle::Function オブジェクトか
...

Fiddle::Closure (9163.0)

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

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

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

FFI の closure の wrapper です。

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

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

class Compare < Fiddle::Closure
# qsort の比較関数は 型が int(*)(v...

Fiddle::Closure::BlockCaller (9109.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],
TYP...

NEWS for Ruby 2.2.0 (253.0)

NEWS for Ruby 2.2.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

NEWS for Ruby 2.2.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。

== 2.1.0 以降の変更

=== 言語仕様の変更

* nil/true/false
* nil/true/false はフリーズされました 8923

* Hash リテラル
* 後ろにコロンのあるシンボルをキーにしたと...

NEWS for Ruby 2.3.0 (55.0)

NEWS for Ruby 2.3.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

NEWS for Ruby 2.3.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。

== 2.2.0 以降の変更

=== 言語仕様の変更

* frozen-string-literal プラグマ:
* 実験的な機能として fronzen-string-literal というプラグマが導入されました。
897...

絞り込み条件を変える