ライブラリ
- ビルトイン (2)
- fiddle (4)
-
fiddle
/ import (4) - objspace (1)
クラス
-
Fiddle
:: CStruct (1) -
Fiddle
:: Pointer (1)
モジュール
- Fiddle (3)
-
Fiddle
:: Importer (3) - GC (2)
- ObjectSpace (1)
キーワード
-
Data
_ Wrap _ Struct (1) -
create
_ value (1) - fiddle (1)
- free (1)
-
memsize
_ of _ all (1) - realloc (1)
-
ruby
_ xmalloc (1) - stat (1)
- stress= (1)
- struct (1)
- value (1)
検索結果
先頭5件
-
Fiddle
:: CStruct . malloc -> Fiddle :: CStruct (72622.0) -
構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの) オブジェクトで返します。
構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの)
オブジェクトで返します。
C における
return (struct foo*)malloc(sizeof(struct foo));
というコードと対応していると言えます。 -
Fiddle
. # malloc(size) -> Integer (72604.0) -
size バイトのメモリ領域を確保し、その領域を指す整数を返します。
size バイトのメモリ領域を確保し、その領域を指す整数を返します。
メモリを確保できなかった場合、例外 NoMemoryError が発生するか、あるいは ruby インタプリタが強制終了します。
@param size 必要なメモリ領域のサイズを整数で指定します。 -
Fiddle
:: Pointer . malloc(size , free = nil) -> Fiddle :: Pointer (72604.0) -
与えられた長さ size のメモリ領域を確保し、それを表す Pointer オブジェクトを生成して返します。
与えられた長さ size のメモリ領域を確保し、それを表す Pointer オブジェクトを生成して返します。
@param size 確保したいメモリ領域のサイズを整数で指定します。
@param free GC 時に呼ばれる Pointer オブジェクトの free 関数を
Fiddle::Function オブジェクトか整数で指定します。 -
void * ruby
_ xmalloc(long size) (36649.0) -
引数と返り値は malloc() と同じ。 ただしメモリ割り当てに失敗したときは GC を行いそれでもだめなときは NoMemoryError を raise する。 つまりこの関数が返り値を返したときは常に割り当ては成功している。
引数と返り値は malloc() と同じ。
ただしメモリ割り当てに失敗したときは
GC を行いそれでもだめなときは NoMemoryError を raise する。
つまりこの関数が返り値を返したときは常に割り当ては成功している。 -
Fiddle
:: Importer # create _ value(type , val = nil) -> Fiddle :: CStruct (18349.0) -
型が type で要素名が "value" であるような構造体を 定義(Fiddle::Importer#struct)し、 その構造体のメモリを Fiddle::CStruct#malloc で確保し、 確保したメモリを保持しているオブジェクトを返します。
型が type で要素名が "value" であるような構造体を
定義(Fiddle::Importer#struct)し、
その構造体のメモリを Fiddle::CStruct#malloc で確保し、
確保したメモリを保持しているオブジェクトを返します。
type は "int", "void*" といった文字列で型を指定します。
val に nil 以外を指定すると、確保された構造体に
その値を代入します。
@param type 型を表す文字列
@param val 構造体に確保される初期値
例
require 'fiddle/import'
module M
... -
Fiddle
:: Importer # value(type , val = nil) -> Fiddle :: CStruct (18349.0) -
型が type で要素名が "value" であるような構造体を 定義(Fiddle::Importer#struct)し、 その構造体のメモリを Fiddle::CStruct#malloc で確保し、 確保したメモリを保持しているオブジェクトを返します。
型が type で要素名が "value" であるような構造体を
定義(Fiddle::Importer#struct)し、
その構造体のメモリを Fiddle::CStruct#malloc で確保し、
確保したメモリを保持しているオブジェクトを返します。
type は "int", "void*" といった文字列で型を指定します。
val に nil 以外を指定すると、確保された構造体に
その値を代入します。
@param type 型を表す文字列
@param val 構造体に確保される初期値
例
require 'fiddle/import'
module M
... -
Fiddle
. # realloc(addr , size) -> Integer (18337.0) -
addr で指定したメモリ領域を size バイトにリサイズし、その領域を指す整数 を返します。
addr で指定したメモリ領域を size バイトにリサイズし、その領域を指す整数
を返します。
addr には Fiddle.#malloc で確保したメモリ領域を渡します。
また、リサイズの結果、返り値が addr と異なる場合があります。
@param addr リサイズしたいメモリアドレス整数
@param size リサイズ後のバイト数
@see Fiddle.#malloc -
ObjectSpace
. # memsize _ of _ all(klass = nil) -> Integer (18319.0) -
すべての生存しているオブジェクトが消費しているメモリ使用量をバイト単位 で返します。
すべての生存しているオブジェクトが消費しているメモリ使用量をバイト単位
で返します。
@param klass 指定したクラスのインスタンスのメモリ使用量を返します。省略
した場合はすべてのクラスのインスタンスのメモリ使用量を返し
ます。
本メソッドは以下のような Ruby のコードで定義できます。
//emlist[例][ruby]{
def memsize_of_all klass = false
total = 0
ObjectSpace.each_object{|e|
total += ObjectSpace.... -
fiddle (18037.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
dl と同等の機能を持ちますが、
dl は 2.0 以降deprecated となり、2.2.0 で削除されました。このライブラリ
を代わりに使います。
=== 使い方
通常は fiddle/import ライブラリを require して
Fiddle::Importer モジュールを使用します。
Fiddle モジュール自体はプリミティブな機能しか提供していません。
Fiddle::Importer モジュールは以下のようにユーザが定義した
モジュールを拡張する形で使います。
require ... -
Fiddle
. # free(addr) -> nil (9355.0) -
指定された addr が指すメモリ領域を開放します。
指定された addr が指すメモリ領域を開放します。
必ず Fiddle.#malloc が返した整数を addr に与えなければいけません。
そうでない場合、ruby インタプリタが異常終了します。
@param addr Fiddle.#malloc で確保されたメモリ領域を指す整数を指定します。
例:
require 'fiddle'
addr = Fiddle.malloc(10)
p addr #=> 136942800
Fiddle.free(addr) -
Fiddle
:: Importer # struct(signature) -> Class (9337.0) -
C の構造体型に対応する Ruby のクラスを構築して返します。
C の構造体型に対応する Ruby のクラスを構築して返します。
構造体の各要素は C と似せた表記ができます。そしてそれを
配列で signature に渡してデータを定義します。例えば C における
struct timeval {
long tv_sec;
long tv_usec;
};
という構造体型に対応して
Timeval = struct(["long tv_sec", "long tv_usec"])
として構造体に対応するクラスを生成します。
このメソッドが返すクラスには以下のメソッドが定義されています
* クラスメソッド malloc
... -
VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval) (619.0) -
C の構造体 sval をラップして klass クラスの インスタンスである Ruby オブジェクトを生成し、それを返します。 mark、free はそれぞれ sval のマーク用・解放用の 関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
C の構造体 sval をラップして klass クラスの
インスタンスである Ruby オブジェクトを生成し、それを返します。
mark、free はそれぞれ sval のマーク用・解放用の
関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
また RUBY_DATA_FUNC の定義は以下のようです。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には sval が渡されます。
使用例
struct mytype {
int i;
char *s;
... -
GC
. stat(result _ hash = {}) -> {Symbol => Integer} (337.0) -
GC 内部の統計情報を Hash で返します。
GC 内部の統計情報を Hash で返します。
@param result_hash 戻り値のためのハッシュを指定します。省略した場合は新
しくハッシュを作成します。result_hash の内容は上書き
されます。
@param key 得られる統計情報から特定の情報を取得したい場合にキーを
Symbol で指定します。
@return GC 内部の統計情報をHash で返します。
引数 key を指定した場合は数値を返します。
GC.stat
# =>
... -
GC
. stress=(value) (319.0) -
GCのストレスモードを引数 value に設定します。 引数 value が真に設定されている間は、GC を行えるすべての機会に GC を行います。
GCのストレスモードを引数 value に設定します。
引数 value が真に設定されている間は、GC を行えるすべての機会に GC を行います。
この機能はデバッグ用途に提供されています。ストレスモードを有効にすると
プログラムのパフォーマンスが低下します。
@param value 任意のオブジェクト。整数以外の値を指定した場合は真偽値として解釈されます。
整数を指定する場合は以下のフラグをOR演算した値を指定します。
: 0x01
マイナー GC を動作させる場合に指定します。
: 0x02
sweep を遅らせる(Lazy Sweep を行う)...