ライブラリ
- fiddle (34)
-
fiddle
/ import (3)
クラス
-
Fiddle
:: CStruct (1) -
Fiddle
:: Function (1) -
Fiddle
:: Pointer (12)
モジュール
- Fiddle (19)
-
Fiddle
:: Importer (2)
キーワード
- + (1)
- +@ (1)
- - (1)
- -@ (1)
-
ALIGN
_ SIZE _ T (1) -
ALIGN
_ SSIZE _ T (1) - BlockCaller (1)
- Closure (1)
-
NEWS for Ruby 2
. 2 . 0 (1) -
SIZEOF
_ CHAR (1) -
SIZEOF
_ DOUBLE (1) -
SIZEOF
_ FLOAT (1) -
SIZEOF
_ INT (1) -
SIZEOF
_ INTPTR _ T (1) -
SIZEOF
_ LONG (1) -
SIZEOF
_ LONG _ LONG (1) -
SIZEOF
_ PTRDIFF _ T (1) -
SIZEOF
_ SHORT (1) -
SIZEOF
_ SIZE _ T (1) -
SIZEOF
_ SSIZE _ T (1) -
SIZEOF
_ UINTPTR _ T (1) -
SIZEOF
_ VOIDP (1) -
TYPE
_ SIZE _ T (1) -
TYPE
_ SSIZE _ T (1) - bind (1)
- fiddle (1)
-
fiddle
/ import (1) - malloc (2)
- new (2)
- ptr (1)
- realloc (1)
- ref (1)
- size= (1)
- sizeof (1)
-
to
_ str (2)
検索結果
先頭5件
-
Fiddle
:: SIZEOF _ SIZE _ T -> Integer (99652.0) -
Cでの sizeof(size_t) の値
Cでの sizeof(size_t) の値 -
Fiddle
:: SIZEOF _ SSIZE _ T -> Integer (99601.0) -
Cでの sizeof(ssize_t) の値
Cでの sizeof(ssize_t) の値 -
Fiddle
:: ALIGN _ SIZE _ T -> Integer (81352.0) -
C の構造体における size_t のアライメントの値。
C の構造体における size_t のアライメントの値。 -
Fiddle
:: TYPE _ SIZE _ T -> Integer (81352.0) -
C の size_t 型を表す定数。
C の size_t 型を表す定数。 -
Fiddle
:: ALIGN _ SSIZE _ T -> Integer (81301.0) -
C の構造体における ssize_t のアライメントの値。
C の構造体における ssize_t のアライメントの値。 -
Fiddle
:: SIZEOF _ CHAR -> Integer (81301.0) -
Cでの sizeof(char) の値
Cでの sizeof(char) の値 -
Fiddle
:: SIZEOF _ DOUBLE -> Integer (81301.0) -
Cでの sizeof(double) の値
Cでの sizeof(double) の値 -
Fiddle
:: SIZEOF _ FLOAT -> Integer (81301.0) -
Cでの sizeof(float) の値
Cでの sizeof(float) の値 -
Fiddle
:: SIZEOF _ INT -> Integer (81301.0) -
Cでの sizeof(int) の値
Cでの sizeof(int) の値 -
Fiddle
:: SIZEOF _ INTPTR _ T -> Integer (81301.0) -
Cでの sizeof(intptr_t) の値
Cでの sizeof(intptr_t) の値 -
Fiddle
:: SIZEOF _ LONG -> Integer (81301.0) -
Cでの sizeof(long) の値
Cでの sizeof(long) の値 -
Fiddle
:: SIZEOF _ LONG _ LONG -> Integer (81301.0) -
Cでの sizeof(long long) の値
Cでの sizeof(long long) の値 -
Fiddle
:: SIZEOF _ PTRDIFF _ T -> Integer (81301.0) -
Cでの sizeof(ptrdiff_t) の値
Cでの sizeof(ptrdiff_t) の値 -
Fiddle
:: SIZEOF _ SHORT -> Integer (81301.0) -
Cでの sizeof(short) の値
Cでの sizeof(short) の値 -
Fiddle
:: SIZEOF _ UINTPTR _ T -> Integer (81301.0) -
Cでの sizeof(uintptr_t) の値
Cでの sizeof(uintptr_t) の値 -
Fiddle
:: SIZEOF _ VOIDP -> Integer (81301.0) -
Cでの sizeof(void*) の値
Cでの sizeof(void*) の値 -
Fiddle
:: TYPE _ SSIZE _ T -> Integer (81301.0) -
C の ssize_t 型を表す定数。
C の ssize_t 型を表す定数。 -
Fiddle
. # realloc(addr , size) -> Integer (63406.0) -
addr で指定したメモリ領域を size バイトにリサイズし、その領域を指す整数 を返します。
addr で指定したメモリ領域を size バイトにリサイズし、その領域を指す整数
を返します。
addr には Fiddle.#malloc で確保したメモリ領域を渡します。
また、リサイズの結果、返り値が addr と異なる場合があります。
@param addr リサイズしたいメモリアドレス整数
@param size リサイズ後のバイト数
@see Fiddle.#malloc -
Fiddle
:: Pointer # size -> Integer (63376.0) -
自身の指す領域のサイズを返します。
自身の指す領域のサイズを返します。
基本的には Fiddle::Pointer.new で指定したサイズが返されます。
Fiddle::Pointer.to_ptr で文字列を変換したときは、そのバイト数が返されます。
Fiddle::Pointer#size= でこの値を変更することができます。 -
Fiddle
. # malloc(size) -> Integer (63370.0) -
size バイトのメモリ領域を確保し、その領域を指す整数を返します。
size バイトのメモリ領域を確保し、その領域を指す整数を返します。
メモリを確保できなかった場合、例外 NoMemoryError が発生するか、あるいは ruby インタプリタが強制終了します。
@param size 必要なメモリ領域のサイズを整数で指定します。 -
Fiddle
:: CStruct . size -> Integer (63304.0) -
構造体のサイズをバイト数で返します。
構造体のサイズをバイト数で返します。
このメソッドが返す値は C の構造体としてのサイズです。
Ruby のオブジェクトとしてはより大きなメモリを消費しています。 -
Fiddle
:: Importer # sizeof(t) -> Integer (27463.0) -
C における sizeof(t) の値を返します。
C における sizeof(t) の値を返します。
t が文字列の場合、その文字列が表す C の型の size が返されます。
例えば、sizeof("char") は 1 を返します。
sizeof("char*") は環境によって 4 や 8 といった値を返します。
Fiddle::Importer#struct で定義した
構造体クラスを渡すと、その構造体のサイズを返します。
Fiddle::Importer#union で定義した共用体クラスも同様です。
t がクラスの場合、t が to_ptr というインスタンスメソッドを持っている
ならば t.size を返します。
それ... -
Fiddle
:: Pointer # size=(s) (27322.0) -
自身の指す領域のサイズを変えます。
自身の指す領域のサイズを変えます。
変更してもメモリの再割り当てはしません。単にオブジェクトが記録している
size の情報が変更されるだけです。
@param s 自身が指すメモリのサイズを整数で指定します。 -
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
/ import (18373.0) -
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
通常は fiddle ライブラリを使わずこの fiddle/import ライブラリを使います。
主な使い方は fiddle も参照してください。
=== 高度な使用法
==== ○○の配列を関数に渡したい
例えば与えられた長さ len の double の配列の和を計算する関数
double sum(double *arry, int len);
があったとします。これを呼び出したい場合は以下のように Array#pack を使用します。
require 'fiddle/import'
m... -
Fiddle
:: Function . new(ptr , args , ret _ type , abi=Fiddle :: Function :: DEFAULT , name: nil) -> Fiddle :: Function (10123.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
:: Pointer . malloc(size , free = nil) -> Fiddle :: Pointer (9691.0) -
与えられた長さ size のメモリ領域を確保し、それを表す Pointer オブジェクトを生成して返します。
与えられた長さ size のメモリ領域を確保し、それを表す Pointer オブジェクトを生成して返します。
@param size 確保したいメモリ領域のサイズを整数で指定します。
@param free GC 時に呼ばれる Pointer オブジェクトの free 関数を
Fiddle::Function オブジェクトか整数で指定します。 -
Fiddle
:: Pointer . new(addr , size = 0 , free = nil) -> Fiddle :: Pointer (9679.0) -
与えられた addr が指すメモリ領域を表す Pointer オブジェクトを生成して返します。
与えられた addr が指すメモリ領域を表す Pointer オブジェクトを生成して返します。
size を指定した場合、アドレス addr に確保されているメモリ領域のサイズは
size であると仮定されます。GC は free 関数を使用してメモリを解放します。
@param addr 生成する Pointer オブジェクトが指すアドレスを整数で指定します。
@param size 生成する Pointer オブジェクトが指すメモリ領域のサイズを整数で指定します。
@param free GC 時に呼ばれる free 関数を Fiddle::Function オブジェクトか
... -
Fiddle
:: Importer # bind(signature , *opts) { . . . } -> Fiddle :: Function (9520.0) -
Ruby のブロックを C の関数で wrap し、その関数をモジュールに インポートします。
Ruby のブロックを C の関数で wrap し、その関数をモジュールに
インポートします。
これでインポートされた関数はモジュール関数として定義されます。
また、Fiddle::Importer#[] で Fiddle::Function オブジェクトとして
取り出すことができます。
signature で関数の名前とシネグチャを指定します。例えば
"int compare(void*, void*)" のように指定します。
opts には :stdcall もしくは :cdecl を渡すことができ、
呼出規約を明示することができます。
@return インポートした関数を表す ... -
Fiddle
:: Pointer # +@ -> Fiddle :: Pointer (9361.0) -
自身の指す値を Pointer にして返します。
自身の指す値を Pointer にして返します。
自身の指す値はポインタであると仮定します。
C 言語におけるポインタのポインタに対する間接参照 *p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
... -
Fiddle
:: Pointer # -@ -> Fiddle :: Pointer (9361.0) -
自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
自身を指す Pointer オブジェクトを返します。
C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
p cref.ptr.to_s ... -
Fiddle
:: Pointer # ptr -> Fiddle :: Pointer (9361.0) -
自身の指す値を Pointer にして返します。
自身の指す値を Pointer にして返します。
自身の指す値はポインタであると仮定します。
C 言語におけるポインタのポインタに対する間接参照 *p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
... -
Fiddle
:: Pointer # ref -> Fiddle :: Pointer (9361.0) -
自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
自身を指す Pointer オブジェクトを返します。
C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
p cref.ptr.to_s ... -
Fiddle
:: Pointer # +(n) -> Fiddle :: Pointer (9358.0) -
自身のアドレスに n バイトを足した新しい Pointer オブジェクトを返します。
自身のアドレスに n バイトを足した新しい Pointer オブジェクトを返します。
この返り値には、free 関数がセットされず、size は 0 とされます。
@param n アドレスの増分を整数で指定します。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
p cptr[0,1] #=> "a"
cptr += 1
p cptr[0,1] #=> "b" -
Fiddle
:: Pointer # -(n) -> Fiddle :: Pointer (9358.0) -
自身のアドレスから n バイトを引いた新しい Pointer オブジェクトを返します。
自身のアドレスから n バイトを引いた新しい Pointer オブジェクトを返します。
この返り値には、free 関数がセットされず、size は 0 とされます。
@param n アドレスの差分を整数で指定します。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cptr += 1
p cptr[0,1] #=> "b"
cptr -= 1
p cptr[0,1] #=> "a" -
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... -
Fiddle
:: Pointer # to _ str -> String (9019.0) -
自身が指す領域から長さ len の文字列を複製して返します。
自身が指す領域から長さ len の文字列を複製して返します。
len を省略した場合は、self.size をその代わりに使います。
@param len 文字列の長さを整数で指定します。 -
Fiddle
:: Pointer # to _ str(len) -> String (9019.0) -
自身が指す領域から長さ len の文字列を複製して返します。
自身が指す領域から長さ len の文字列を複製して返します。
len を省略した場合は、self.size をその代わりに使います。
@param len 文字列の長さを整数で指定します。 -
NEWS for Ruby 2
. 2 . 0 (37.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 リテラル
* 後ろにコロンのあるシンボルをキーにしたと...