るりまサーチ (Ruby 2.3.0)

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

別のキーワード

  1. openssl new
  2. _builtin new
  3. rexml/document new
  4. resolv new
  5. socket new

検索結果

fiddle (114433.0)

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

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

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

=== 使い方

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

require ...

Fiddle::Function.new(ptr, args, ret_type, abi=Fiddle::Function::DEFAULT, name: nil) -> Fiddle::Function (88444.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::Handle.new(lib, flags=Fiddle::Handle::RTLD_LAZY|Fiddle::Handle::RTLD_GLOBAL) -> Fiddle::Handle (88423.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 (88423.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 (87994.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 (87994.0)

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

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


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

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

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

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

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

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

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

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

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

NEWS for Ruby 2.3.0 (78073.0)

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

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

それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリス...

NEWS for Ruby 2.2.0 (78055.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 リテラル
* 後ろにコロンのあるシンボルをキーにしたと...

Fiddle::CStruct.new(addr) -> Fiddle::CStruct (63607.0)

addr のアドレスが指すメモリを構造体のアドレスとみなし、 構造体を作ります。

addr のアドレスが指すメモリを構造体のアドレスとみなし、
構造体を作ります。

C におけるキャストと似ています。
return (struct foo*)addr;
というコードと対応していると言えます。

@param addr アドレス

絞り込み条件を変える

Fiddle.#dlopen(lib) -> Fiddle::Handle (51406.0)

ダイナミックライブラリ lib をロードし、 Fiddle::Handle として返します。

ダイナミックライブラリ lib をロードし、
Fiddle::Handle として返します。

Fiddle::Handle.new(lib) と等価です。

@param lib ロードしたいライブラリを文字列で与えます。

@raise Fiddle::DLError dlopen(3) に失敗した時に発生します。

Fiddle::Pointer#free -> Fiddle::CFunc (33406.0)

GC がメモリを解放するのに使用する Fiddle::CFunc オブジェクトを返します。

GC がメモリを解放するのに使用する Fiddle::CFunc オブジェクトを返します。

これは普通 Fiddle::Pointer#free= や Fiddle::Pointer.new によって設定されます。

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

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

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

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

Fiddle::Closure (33253.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 (33127.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...

絞り込み条件を変える

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

関数を呼び出します。

関数を呼び出します。

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

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

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

Fiddle::Handle#[](func) -> Integer (33073.0)

関数やグローバル変数 func へのポインタを取得し、整数として返します。

関数やグローバル変数 func へのポインタを取得し、整数として返します。

@param func 得たいシンボルの名前を文字列で与えます。

@raise Fiddle::DLError シンボルが見つからなかった時に発生します。

require 'fiddle'

h = Fiddle::Handle.new('libc.so.6')
p h.sym('strlen') # 関数ポインタのアドレスを整数で表示

Fiddle::Handle#sym(func) -> Integer (33073.0)

関数やグローバル変数 func へのポインタを取得し、整数として返します。

関数やグローバル変数 func へのポインタを取得し、整数として返します。

@param func 得たいシンボルの名前を文字列で与えます。

@raise Fiddle::DLError シンボルが見つからなかった時に発生します。

require 'fiddle'

h = Fiddle::Handle.new('libc.so.6')
p h.sym('strlen') # 関数ポインタのアドレスを整数で表示

Fiddle::Pointer#size -> Integer (33073.0)

自身の指す領域のサイズを返します。

自身の指す領域のサイズを返します。

基本的には Fiddle::Pointer.new で指定したサイズが返されます。
Fiddle::Pointer.to_ptr で文字列を変換したときは、そのバイト数が返されます。
Fiddle::Pointer#size= でこの値を変更することができます。

Fiddle::Pointer#to_value -> object (33073.0)

自身はヒープに確保された Ruby のオブジェクトを指すポインタであると仮定して、 自身が指すオブジェクトを返します。

自身はヒープに確保された Ruby のオブジェクトを指すポインタであると仮定して、
自身が指すオブジェクトを返します。

例:

require 'fiddle'

s = 'abc'
i = Fiddle.dlwrap(s)
cptr = Fiddle::Pointer.new(i)
p cptr.to_value #=> "abc"

絞り込み条件を変える

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

呼出規約を返します。

呼出規約を返します。

@see Fiddle::Function.new

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

関数の名前を返します。

関数の名前を返します。

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

@see Fiddle::Function.new

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

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

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

@see Fiddle::Function.new

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

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

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

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

@see Fiddle::Function.new

Fiddle::Handle::RTLD_GLOBAL -> Integer (33019.0)

dlopen のフラグ RTLD_GLOBAL を表す定数です。

dlopen のフラグ RTLD_GLOBAL を表す定数です。

DL::Handle.new の flags として用います。

詳しくは dlopen(3) を見てください。

絞り込み条件を変える

Fiddle::Handle::RTLD_LAZY -> Integer (33019.0)

dlopen のフラグ RTLD_LAZY を表す定数です。

dlopen のフラグ RTLD_LAZY を表す定数です。

DL::Handle.new の flags として用います。

詳しくは dlopen(3) を見てください。

Fiddle::Handle::RTLD_NOW -> Integer (33019.0)

dlopen のフラグ RTLD_NOW を表す定数です。

dlopen のフラグ RTLD_NOW を表す定数です。

DL::Handle.new の flags として用います。

詳しくは dlopen(3) を見てください。

Fiddle::Importer#typealias(new, orig) -> () (9394.0)

extern や struct で利用する型の別名を定義します。

extern や struct で利用する型の別名を定義します。

@param new 別名(文字列)
@param orig 別名を付けたい型の名前(文字列)
@see Fiddle::Importer#extern, Fiddle::Importer#sizeof,
Fiddle::Importer#struct, Fiddle::Importer#union