要約
fiddle の名前空間をなすモジュールです。
UNIX の dlopen(3) や Windows の LoadLibrary() などのダイナミックリンカへの低レベルなインターフェースを提供するモジュールです。
目次
- 特異メソッド
- モジュール関数
- 定数
- 
- ALIGN_CHAR
- ALIGN_DOUBLE
- ALIGN_FLOAT
- ALIGN_INT
- ALIGN_INTPTR_T
- ALIGN_LONG
- ALIGN_LONG_LONG
- ALIGN_PTRDIFF_T
- ALIGN_SHORT
- ALIGN_SIZE_T
- ALIGN_SSIZE_T
- ALIGN_UINTPTR_T
- ALIGN_VOIDP
- BUILD_RUBY_PLATFORM
- NULL
- RUBY_FREE
- SIZEOF_CHAR
- SIZEOF_DOUBLE
- SIZEOF_FLOAT
- SIZEOF_INT
- SIZEOF_INTPTR_T
- SIZEOF_LONG
- SIZEOF_LONG_LONG
- SIZEOF_PTRDIFF_T
- SIZEOF_SHORT
- SIZEOF_SIZE_T
- SIZEOF_SSIZE_T
- SIZEOF_UINTPTR_T
- SIZEOF_VOIDP
- TYPE_CHAR
- TYPE_DOUBLE
- TYPE_FLOAT
- TYPE_INT
- TYPE_INTPTR_T
- TYPE_LONG
- TYPE_LONG_LONG
- TYPE_PTRDIFF_T
- TYPE_SHORT
- TYPE_SIZE_T
- TYPE_SSIZE_T
- TYPE_UINTPTR_T
- TYPE_VOID
- TYPE_VOIDP
- WINDOWS
 
特異メソッド
- last_error -> Integer[permalink][rdoc][edit]
- 
最後に Fiddle::Function#call で C の関数を呼び出した結果設定された errno を返します。 この値はスレッドローカルです。 
- last_error=(errno)[permalink][rdoc][edit]
- 
Fiddle.last_error で返される値を設定します。 errno は fiddle が設定するのでユーザはこのメソッドを使わないでください。 - [PARAM] errno:
- 設定する errno
 
- win32_last_error -> Integer[permalink][rdoc][edit]
- 
最後に Fiddle::Function#call で C の関数を呼び出した結果設定された errno を返します。 このメソッドは Windows 環境でのみ定義されています。 この値はスレッドローカルです。 
- win32_last_error=(errno)[permalink][rdoc][edit]
- 
Fiddle.win32_last_error で返される値を設定します。 errno は fiddle が設定するのでユーザはこのメソッドを使わないでください。 このメソッドは Windows 環境でのみ定義されています。 - [PARAM] errno:
- 設定する errno
 
モジュール関数
- dlopen(lib) -> Fiddle::Handle[permalink][rdoc][edit]
- 
ダイナミックライブラリ lib をロードし、 Fiddle::Handle として返します。 Fiddle::Handle.new(lib) と等価です。 - [PARAM] lib:
- ロードしたいライブラリを文字列で与えます。
- [EXCEPTION] Fiddle::DLError:
- dlopen(3) に失敗した時に発生します。
 
- dlunwrap(addr) -> object[permalink][rdoc][edit]
- 
指定されたアドレスの Ruby オブジェクトを返します。 - [PARAM] addr:
- Fiddle.#dlwrap が返した Ruby オブジェクトのアドレス(整数)を指定します。
 例: require 'fiddle' s = 'abc' p addr = Fiddle.dlwrap(s) #=> 136122440 p Fiddle.dlunwrap(addr) #=> "abc" 
- dlwrap(obj) -> Integer[permalink][rdoc][edit]
- 
指定されたオブジェクト obj のアドレスを表す整数を返します。 - [PARAM] obj:
- Ruby のオブジェクトを指定します。
 例: require 'fiddle' s = 'abc' p addr = Fiddle.dlwrap(s) #=> 136122440 p Fiddle.dlunwrap(addr) #=> "abc" 
- free(addr) -> nil[permalink][rdoc][edit]
- 
指定された addr が指すメモリ領域を開放します。 必ず Fiddle.#malloc が返した整数を addr に与えなければいけません。そうでない場合、ruby インタプリタが異常終了します。 - [PARAM] addr:
- Fiddle.#malloc で確保されたメモリ領域を指す整数を指定します。
 例: require 'fiddle' addr = Fiddle.malloc(10) p addr #=> 136942800 Fiddle.free(addr) 
- malloc(size) -> Integer[permalink][rdoc][edit]
- 
size バイトのメモリ領域を確保し、その領域を指す整数を返します。 メモリを確保できなかった場合、例外 NoMemoryError が発生するか、あるいは ruby インタプリタが強制終了します。 - [PARAM] size:
- 必要なメモリ領域のサイズを整数で指定します。
 
- realloc(addr, size) -> Integer[permalink][rdoc][edit]
- 
addr で指定したメモリ領域を size バイトにリサイズし、その領域を指す整数を返します。 addr には Fiddle.#malloc で確保したメモリ領域を渡します。また、リサイズの結果、返り値が addr と異なる場合があります。 - [PARAM] addr:
- リサイズしたいメモリアドレス整数
- [PARAM] size:
- リサイズ後のバイト数
 [SEE_ALSO] Fiddle.#malloc 
定数
- ALIGN_CHAR -> Integer[permalink][rdoc][edit]
- 
C の構造体における char のアライメントの値。 
- ALIGN_DOUBLE -> Integer[permalink][rdoc][edit]
- 
C の構造体における double のアライメントの値。 
- ALIGN_FLOAT -> Integer[permalink][rdoc][edit]
- 
C の構造体における float のアライメントの値。 
- ALIGN_INT -> Integer[permalink][rdoc][edit]
- 
C の構造体における int のアライメントの値。 
- ALIGN_INTPTR_T -> Integer[permalink][rdoc][edit]
- 
C の構造体における intptr_t のアライメントの値。 
- ALIGN_LONG -> Integer[permalink][rdoc][edit]
- 
C の構造体における long のアライメントの値。 
- ALIGN_LONG_LONG -> Integer[permalink][rdoc][edit]
- 
C の構造体における long long のアライメントの値。 
- ALIGN_PTRDIFF_T -> Integer[permalink][rdoc][edit]
- 
C の構造体における ptrdiff_t のアライメントの値。 
- ALIGN_SHORT -> Integer[permalink][rdoc][edit]
- 
C の構造体における short のアライメントの値。 
- ALIGN_SIZE_T -> Integer[permalink][rdoc][edit]
- 
C の構造体における size_t のアライメントの値。 
- ALIGN_SSIZE_T -> Integer[permalink][rdoc][edit]
- 
C の構造体における ssize_t のアライメントの値。 
- ALIGN_UINTPTR_T -> Integer[permalink][rdoc][edit]
- 
C の構造体における uintptr_t のアライメントの値。 
- ALIGN_VOIDP -> Integer[permalink][rdoc][edit]
- 
C の構造体における void* のアライメントの値。 
- BUILD_RUBY_PLATFORM -> String[permalink][rdoc][edit]
- 
ビルドに用いた ruby のプラットフォームを表す文字列。 通常、Object::RUBY_PLATFORM と同じ。 
- NULL -> DL::CPtr[permalink][rdoc][edit]
- 
C の NULL ポインタ 
- RUBY_FREE -> Integer[permalink][rdoc][edit]
- 
ruby_xfree の関数ポインタのアドレスの値。 
- SIZEOF_CHAR -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(char) の値 
- SIZEOF_DOUBLE -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(double) の値 
- SIZEOF_FLOAT -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(float) の値 
- SIZEOF_INT -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(int) の値 
- SIZEOF_INTPTR_T -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(intptr_t) の値 
- SIZEOF_LONG -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(long) の値 
- SIZEOF_LONG_LONG -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(long long) の値 
- SIZEOF_PTRDIFF_T -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(ptrdiff_t) の値 
- SIZEOF_SHORT -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(short) の値 
- SIZEOF_SIZE_T -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(size_t) の値 
- SIZEOF_SSIZE_T -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(ssize_t) の値 
- SIZEOF_UINTPTR_T -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(uintptr_t) の値 
- SIZEOF_VOIDP -> Integer[permalink][rdoc][edit]
- 
Cでの sizeof(void*) の値 
- TYPE_CHAR -> Integer[permalink][rdoc][edit]
- 
C の char 型を表す定数。 unsigned char を表すには符号を逆転させます。 
- TYPE_DOUBLE -> Integer[permalink][rdoc][edit]
- 
C の double 型を表す定数。 
- TYPE_FLOAT -> Integer[permalink][rdoc][edit]
- 
C の float 型を表す定数。 
- TYPE_INT -> Integer[permalink][rdoc][edit]
- 
C の int 型を表す定数。 unsigned int を表すには符号を逆転させます。 
- TYPE_INTPTR_T -> Integer[permalink][rdoc][edit]
- 
C の intptr_t 型を表す定数。 
- TYPE_LONG -> Integer[permalink][rdoc][edit]
- 
C の long 型を表す定数。 unsigned long を表すには符号を逆転させます。 
- TYPE_LONG_LONG -> Integer[permalink][rdoc][edit]
- 
C の long long 型を表す定数。 unsigned long long を表すには符号を逆転させます。 
- TYPE_PTRDIFF_T -> Integer[permalink][rdoc][edit]
- 
C の ptrdiff_t 型を表す定数。 
- TYPE_SHORT -> Integer[permalink][rdoc][edit]
- 
C の short 型を表す定数。 unsigned short を表すには符号を逆転させます。 
- TYPE_SIZE_T -> Integer[permalink][rdoc][edit]
- 
C の size_t 型を表す定数。 
- TYPE_SSIZE_T -> Integer[permalink][rdoc][edit]
- 
C の ssize_t 型を表す定数。 
- TYPE_UINTPTR_T -> Integer[permalink][rdoc][edit]
- 
C の uintptr_t 型を表す定数。 
- TYPE_VOID -> Integer[permalink][rdoc][edit]
- 
C の void を表す定数。 
- TYPE_VOIDP -> Integer[permalink][rdoc][edit]
- 
C の void* 型を表す定数。 
- WINDOWS -> bool[permalink][rdoc][edit]
- 
Windows 上ならば真です。