種類
- インスタンスメソッド (156)
- ライブラリ (36)
- 特異メソッド (36)
- クラス (24)
- モジュール (12)
ライブラリ
-
fiddle
/ import (228)
クラス
-
Fiddle
:: CStruct (60)
モジュール
-
Fiddle
:: Importer (132)
検索結果
先頭5件
-
Fiddle
:: Importer # union(signature) -> Class (8006.0) -
C の共用体型に対応する Ruby のクラスを構築して返します。
...typedef union epoll_data
{
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
は、Ruby上では
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
typealias("uint32_t", "unsigned int")
typealias("uint64_t", "unsigne... -
Fiddle
:: Importer # value(type , val = nil) -> Fiddle :: CStruct (8006.0) -
型が type で要素名が "value" であるような構造体を 定義(Fiddle::Importer#struct)し、 その構造体のメモリを Fiddle::CStruct#malloc で確保し、 確保したメモリを保持しているオブジェクトを返します。
...された構造体に
その値を代入します。
@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
:: CStruct # to _ i -> Integer (8000.0) -
保持している構造体の先頭アドレスを整数で返します。
保持している構造体の先頭アドレスを整数で返します。 -
Fiddle
:: CStruct # to _ ptr -> Fiddle :: Pointer (8000.0) -
保持している構造体へのポインタを返します。
保持している構造体へのポインタを返します。 -
Fiddle
:: CStruct . malloc -> Fiddle :: CStruct (8000.0) -
構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの) オブジェクトで返します。
構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの)
オブジェクトで返します。
C における
return (struct foo*)malloc(sizeof(struct foo));
というコードと対応していると言えます。 -
Fiddle
:: CStruct . new(addr) -> Fiddle :: CStruct (8000.0) -
addr のアドレスが指すメモリを構造体のアドレスとみなし、 構造体を作ります。
addr のアドレスが指すメモリを構造体のアドレスとみなし、
構造体を作ります。
C におけるキャストと似ています。
return (struct foo*)addr;
というコードと対応していると言えます。
@param addr アドレス -
Fiddle
:: CStruct . size -> Integer (8000.0) -
構造体のサイズをバイト数で返します。
構造体のサイズをバイト数で返します。
このメソッドが返す値は C の構造体としてのサイズです。
Ruby のオブジェクトとしてはより大きなメモリを消費しています。 -
Fiddle
:: CUnion (8000.0) -
C の共用体を表すクラスです。
C の共用体を表すクラスです。
このクラスは直接は使わず、Fiddle::Importer#union を用いて
このクラスを継承したクラスを生成し、それを利用します。
Fiddle::CStruct と同様の構造をしています。詳しくはそちらを見てください。 -
Fiddle
:: Importer # [](name) -> Fiddle :: Function|nil (8000.0) -
Fiddle::Importer#extern でインポートした関数の Fiddle::Function オブジェクト を返します。
Fiddle::Importer#extern でインポートした関数の
Fiddle::Function オブジェクト
を返します。
name という名前の関数が存在しない場合は nil を返します。
@param name 関数の名前の文字列