るりまサーチ

最速Rubyリファレンスマニュアル検索!
132件ヒット [1-100件を表示] (0.121秒)
トップページ > クエリ:t[x] > クエリ:r[x] > 種類:インスタンスメソッド[x] > クエリ:@[x] > ライブラリ:fiddle/import[x]

別のキーワード

  1. openssl t61string
  2. asn1 t61string
  3. matrix t
  4. t61string new
  5. fiddle type_size_t

モジュール

キーワード

検索結果

<< 1 2 > >>

Fiddle::Importer#extern(signature, *opts) -> Fiddle::Function (15221.0)

Fiddle::Importer#dlload で取り込んだライブラリから C の関数をインポートします。

...mporter#dlload で取り込んだライブラリから
C の関数をインポートします。

インポートした関数はそのモジュールにモジュール関数として定義されます。

signature で関数の名前とシネグチャを指定します。例えば
"int strcmp(char*,...
...char*)" のように指定することができます。

opts には :stdcall もしくは :cdecl を渡すことができ、
呼出規約を明示することができます。

@
return インポートした関数を表す Fiddle::Function オブジェクトを返します。

@
param signature...
...関数の名前とシネグチャ
@
param opts オプション


r
equire 'fiddle/import'

module M
extern Fiddle::Importer
dlload "libc.so.6"
extern "int strcmp(char*, char*)"
end

M.strcmp("abc", "abc") # => 0
M.strcmp("abc", "abd") # => -1...

Fiddle::Importer#create_value(type, val = nil) -> Fiddle::CStruct (15215.0)

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

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

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

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


r
equire 'fiddle/import'

module M
extend Fiddle::Importer
end

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

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

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

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

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

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

Fiddle::Importer#struct(signature) -> Class (12209.0)

C の構造体型に対応する Ruby のクラスを構築して返します。

...型に対応する Ruby のクラスを構築して返します。

構造体の各要素は C と似せた表記ができます。そしてそれを
配列で signature に渡してデータを定義します。例えば C における
struct timeval {
long tv_sec;
long tv_usec;
};
...
...対応して
T
imeval = struct(["long tv_sec", "long tv_usec"])
として構造体に対応するクラスを生成します。

このメソッドが返すクラスには以下のメソッドが定義されています
* クラスメソッド malloc
* initialize
* to_ptr
* to_i
* 構造...
...Fiddle::CStruct を継承しています。詳しくは
そちらを参照してください。


@
param signature 構造体の各要素を文字列で表現したものの配列

r
equire 'fiddle/import'

module M
extend Fiddle::Importer
dlload "libc.so.6"
extern "int gettimeofday(...

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

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

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

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

絞り込み条件を変える

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

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

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

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

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


r
equire 'fiddle/import'

module M
extend Fiddle::Importer
end

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

Fiddle::Importer#sizeof(t) -> Integer (6274.0)

C における sizeof(t) の値を返します。

...る sizeof(t) の値を返します。

t
が文字列の場合、その文字列が表す C の型の size が返されます。
例えば、sizeof("char") は 1 を返します。
sizeof("char*") は環境によって 4 や 8 といった値を返します。

Fiddle::Importer#struct で定義し...
...rter#union で定義した共用体クラスも同様です。

t
がクラスの場合、t to_ptr というインスタンスメソッドを持っている
ならば t.size を返します。

それ以外の場合は Pointer[t].size を返します。

@
param t サイズを計算する対象
@
...
...raise Fiddle::DLError t として文字列を渡し、それが表している型を Fiddle が知らなかった
場合に発生します

例:

r
equire 'fiddle/import'

module M
extend Fiddle::Importer
T
imeval = struct(["long tv_sec", "long tv_usec"])
p sizeof("char") # =>...

Fiddle::Importer#union(signature) -> Class (6251.0)

C の共用体型に対応する Ruby のクラスを構築して返します。

... Ruby のクラスを構築して返します。

共用体型を Ruby 上で定義する方法は Fiddle::Importer#struct
ほぼ同様です。C における
t
ypedef union epoll_data
{
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
は、Ruby上では
r
eq...
...uire 'fiddle/import'

module M
extend Fiddle::Importer
dlload "libc.so.6"
t
ypealias("uint32_t", "unsigned int")
t
ypealias("uint64_t", "unsigned long long")

EPollData = union(["void *ptr",
"int fd",
"uint32_t u32",...
..."uint64_t u64",
])
end
となります。

返されるクラスは Fiddle::CUnion を継承しています。

1.9.x ではこのメソッドで返されるクラスは正しく動作しません。
2.0以降では修正されています。

@
param signature 共用...

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

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

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

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

signature で関数の名前とシネグチャを指定します。例えば
"int compare(void*, void*)" のように指定します。

opts には :stdcall もしくは :cdecl を渡すことができ、
呼出規約を明示することができます。

@
return インポートし...
...Function オブジェクトを返します。

@
param signature 関数の名前とシネグチャ
@
param opts オプション


r
equire 'fiddle/import'

module M
extend Fiddle::Importer
dlload "libc.so.6"
t
ypealias "size_t", "unsigned long"
extern "int qsort(void*, size_t, s...
<< 1 2 > >>