るりまサーチ (Ruby 2.5.0)

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

別のキーワード

  1. psych psych_y
  2. psych y
  3. kernel y
  4. kernel psych_y

検索結果

Fiddle::BUILD_RUBY_PLATFORM -> String (18307.0)

ビルドに用いた ruby のプラットフォームを表す文字列。

ビルドに用いた ruby のプラットフォームを表す文字列。

通常、Object::RUBY_PLATFORM と同じ。

Fiddle::Closure#ctype -> Integer (18307.0)

返り値の型を返します。

返り値の型を返します。

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

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

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

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

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

Fiddle::RUBY_FREE -> Integer (18307.0)

ruby_xfree の関数ポインタのアドレスの値。

ruby_xfree の関数ポインタのアドレスの値。

Fiddle::TYPE_CHAR -> Integer (18307.0)

C の char 型を表す定数。

C の char 型を表す定数。

unsigned char を表すには符号を逆転させます。

絞り込み条件を変える

Fiddle::TYPE_DOUBLE -> Integer (18307.0)

C の double 型を表す定数。

C の double 型を表す定数。

Fiddle::TYPE_FLOAT -> Integer (18307.0)

C の float 型を表す定数。

C の float 型を表す定数。

Fiddle::TYPE_INT -> Integer (18307.0)

C の int 型を表す定数。

C の int 型を表す定数。

unsigned int を表すには符号を逆転させます。

Fiddle::TYPE_INTPTR_T -> Integer (18307.0)

C の intptr_t 型を表す定数。

C の intptr_t 型を表す定数。

Fiddle::TYPE_LONG -> Integer (18307.0)

C の long 型を表す定数。

C の long 型を表す定数。

unsigned long を表すには符号を逆転させます。

絞り込み条件を変える

Fiddle::TYPE_LONG_LONG -> Integer (18307.0)

C の long long 型を表す定数。

C の long long 型を表す定数。

unsigned long long を表すには符号を逆転させます。

Fiddle::TYPE_PTRDIFF_T -> Integer (18307.0)

C の ptrdiff_t 型を表す定数。

C の ptrdiff_t 型を表す定数。

Fiddle::TYPE_SHORT -> Integer (18307.0)

C の short 型を表す定数。

C の short 型を表す定数。

unsigned short を表すには符号を逆転させます。

Fiddle::TYPE_SIZE_T -> Integer (18307.0)

C の size_t 型を表す定数。

C の size_t 型を表す定数。

Fiddle::TYPE_SSIZE_T -> Integer (18307.0)

C の ssize_t 型を表す定数。

C の ssize_t 型を表す定数。

絞り込み条件を変える

Fiddle::TYPE_UINTPTR_T -> Integer (18307.0)

C の uintptr_t 型を表す定数。

C の uintptr_t 型を表す定数。

Fiddle::TYPE_VOID -> Integer (18307.0)

C の void を表す定数。

C の void を表す定数。

Fiddle::TYPE_VOIDP -> Integer (18307.0)

C の void* 型を表す定数。

C の void* 型を表す定数。

Fiddle::Importer#import_symbol(name) -> Fiddle::Pointer (18304.0)

取り込んだライブラリからシンボルをインポートします。

...取り込んだライブラリからシンボルをインポートします。

返り値はシンボルがロードされたメモリのアドレスを持つ Fiddle::Pointer
オブジェクトを返します。

@param name シンボル名(文字列)...

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

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

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

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

絞り込み条件を変える

Fiddle::BasicTypes (18004.0)

よく使われる型の別名を定義するモジュールです。

よく使われる型の別名を定義するモジュールです。

include すると 以下の型が定義されます。
* "uint"
* "u_int"
* "ulong"
* "u_long"

Fiddle::Win32Types (18004.0)

Windows 用の型の別名を定義するモジュールです。

Windows 用の型の別名を定義するモジュールです。

include すると 以下の型が定義されます。
* "DWORD"
* "PDWORD"
* "DWORD32"
* "DWORD64"
* "WORD"
* "PWORD"
* "BOOL"
* "ATOM"
* "BYTE"
* "PBYTE"
* "UINT"
* "ULONG"
* "UCHAR"
* "HANDLE"
* "PHANDLE"
* "PVOID"
* "LPCSTR"
* "LPSTR"
* "HINSTANCE"
* "HDC"
...

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

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

...ます。

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

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

require 'fiddle'

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

Fiddle::Handle.sym(func) -> Integer (9307.0)

ライブラリのデフォルトの検索順序に従い、現在のライブラリ以降の シンボルを探します。

...ルトの検索順序に従い、現在のライブラリ以降の
シンボルを探します。

Fiddle
::Handle::NEXT.sym(func) と同じです。詳しくは dlsym(3) の
RTLD_NEXT を見てください。

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

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

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

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

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

args、ret_type で関...
...* Fiddle::TYPE_VOID
* Fiddle::TYPE_VOIDP
* Fiddle::TYPE_CHAR
* Fiddle::TYPE_SHORT
* Fiddle::TYPE_INT
* Fiddle::TYPE_LONG
* Fiddle::TYPE_LONG_LONG
* Fiddle::TYPE_FLOAT
* Fiddle::TYPE_DOUBLE
* Fiddle::TYPE_INTPTR_T
* Fiddle::TYPE_UINTPTR_T
* Fiddle::TYPE_PTRDIFF_T
* Fiddle::T...
...E_SIZE_T
* Fiddle::TYPE_SSIZE_T


abi で呼出規約を指定します。
* Fiddle::Function::DEFAULT
* Fiddle::Function::STDCALL
のどちらかを指定します。

require 'fiddle'

h = Fiddle::Handle.new('libc.so.6')
func = Fiddle::Function.new(h.sym("strlen"), [Fiddle::TYPE_VOID...

絞り込み条件を変える

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

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

...flags で dlopen(3) の第2引数として渡すフラグを指定できます。
Fiddle
::Handle::RTLD_LAZY、Fiddle::Handle::RTLD_NOW
のどちらか一方を指定する必要があり、
またそれに Fiddle::Handle::RTLD_GLOBAL と OR を取ることができます。
詳しい意味は man...
...@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 (307.0)

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

...flags で dlopen(3) の第2引数として渡すフラグを指定できます。
Fiddle
::Handle::RTLD_LAZY、Fiddle::Handle::RTLD_NOW
のどちらか一方を指定する必要があり、
またそれに Fiddle::Handle::RTLD_GLOBAL と OR を取ることができます。
詳しい意味は man...
...@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::Importer#create_value(type, val = nil) -> Fiddle::CStruct (304.0)

型が type で要素名が "value" であるような構造体を 定義(Fiddle::Importer#struct)し、 その構造体のメモリを Fiddle::CStruct#malloc で確保し、 確保したメモリを保持しているオブジェクトを返します。

...型が type で要素名が "value" であるような構造体を
定義(Fiddle::Importer#struct)し、
その構造体のメモリを Fiddle::CStruct#malloc で確保し、
確保したメモリを保持しているオブジェクトを返します。

type は "int", "void*" といった文字列...
...された構造体に
その値を代入します。

@param type 型を表す文字列
@param val 構造体に確保される初期値


require 'fiddle/import'

module M
extend Fiddle::Importer
end

v = M.value("int", 32)
p v.value # => 32
v.value = 48
p v.value # => 48...

Fiddle::Importer#value(type, val = nil) -> Fiddle::CStruct (304.0)

型が type で要素名が "value" であるような構造体を 定義(Fiddle::Importer#struct)し、 その構造体のメモリを Fiddle::CStruct#malloc で確保し、 確保したメモリを保持しているオブジェクトを返します。

...型が type で要素名が "value" であるような構造体を
定義(Fiddle::Importer#struct)し、
その構造体のメモリを Fiddle::CStruct#malloc で確保し、
確保したメモリを保持しているオブジェクトを返します。

type は "int", "void*" といった文字列...
...された構造体に
その値を代入します。

@param type 型を表す文字列
@param val 構造体に確保される初期値


require 'fiddle/import'

module M
extend Fiddle::Importer
end

v = M.value("int", 32)
p v.value # => 32
v.value = 48
p v.value # => 48...

Fiddle::Closure (79.0)

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

...ドを定義し、
new でオブジェクトを生成することで利用します。

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

class Compare < Fiddle::Closure
# qsort の比較関数は 型が int(*)(void*, void*) であるため、
# このメ...
...字の文字列に変換している
def call(x, y)
x.to_s(1) <=> y.to_s(1)
end
end

libc = DL.dlopen("/lib/libc.so.6")
qs = Fiddle::Function.new(libc["qsort"],
[TYPE_VOIDP, TYPE_INT, TYPE_INT, TYPE_VOIDP],
TYPE_VOID)
s...
...'fiddle'
include Fiddle # TYPE_* を使うために include する
compare = Class.new(Fiddle::Closure){
def call(x, y)
x.to_s(1) <=> y
end
}.new(TYPE_INT, [TYPE_VOIDP, TYPE_VOIDP])

単に Ruby のブロックを C の(コールバック)関数に変換したい場合は
Fiddle
:...

絞り込み条件を変える

Fiddle::Closure::BlockCaller (43.0)

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

...ラスです。

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...

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

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

...インポートします。

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

signature で関数の名前とシネグチャを指定し...
...す。

@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!...