るりまサーチ

最速Rubyリファレンスマニュアル検索!
143件ヒット [1-100件を表示] (0.245秒)
トップページ > クエリ:i[x] > クエリ:l[x] > クエリ:a[x] > クエリ:fiddle/import[x]

別のキーワード

  1. _builtin to_a
  2. matrix to_a
  3. to_a
  4. argf.class to_a
  5. dbm to_a

ライブラリ

クラス

モジュール

キーワード

検索結果

<< 1 2 > >>

fiddle/import (50096.0)

fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。

...fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。

通常は fiddle ライブラリを使わずこの fiddle/import ライブラリを使います。

主な使い方は fiddle も参照してください。

=== 高度な使用法

====...
...た長さ len の double の配列の和を計算する関数
double sum(double *arry, int len);
があったとします。これを呼び出したい場合は以下のように Array#pack を使用します。

require 'fiddle/import'
module M
extend Fiddle::Importer
dlload './libsum.so'...
...extern 'double sum(double*, int)'
end
p M.sum([2.0, 3.0, 4.0].pack('d*'), 3) #=> 9.0

また与えられた文字列の配列 s (長さlen)の各要素の最初の文字を buf にコピーする関数
void first_char(char **s, char *buf, int len)
があったとします。これを呼び...

Fiddle::Importer#typealias(new, orig) -> () (26300.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 (23406.0)

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

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

type は "int", "void*" といった文字列で型を指定します。
va...
...l に nil 以外を指定すると、確保された構造体に
その値を代入します。

@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::Importer#create_value(type, val = nil) -> Fiddle::CStruct (23306.0)

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

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

type は "int", "void*" といった文字列で型を指定します。
va...
...l に nil 以外を指定すると、確保された構造体に
その値を代入します。

@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.malloc -> Fiddle::CStruct (23300.0)

構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの) オブジェクトで返します。

...構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの)
オブジェクトで返します。

C における
return (struct foo*)malloc(sizeof(struct foo));
というコードと対応していると言えます。...

絞り込み条件を変える

Fiddle::Importer#dlload(*libs) -> () (23300.0)

C の動的ライブラリをモジュールにインポートします。

...だライブラリの関数は Fiddle::Importer#extern で
インポートできます。

複数のライブラリを指定することができます。
ファイル名文字列を指定することでそのライブラリをインポートします。
Fiddle::Handle を渡すとそのハンドル...
...が指しているライブラリをインポート
します。

このメソッドは同じモジュールで2回呼ばないでください。


@param libs インポートするライブラリ
@raise Fiddle::DLError ライブラリのインポートができなかった場合に発生します...

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

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

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

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

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

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

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

...で wrap し、その関数をモジュールに
インポートします。

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

signature...
..."int compare(void*, void*)" のように指定します。

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

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

@param signature...
...@param opts オプション


require 'fiddle/import'

module M
extend Fiddle::Importer
dlload "libc.so.6"
typealias "size_t", "unsigned long"
extern "int qsort(void*, size_t, size_t, void*)"

bind("int compare(void*, void*)"){|px, py|
x = px.to_s(Fiddle::SIZE...

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

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

...Fiddle::Importer#struct と
ほぼ同様です。C における
typedef union epoll_data
{
void *ptr;
i
nt 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", "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#struct(signature) -> Class (14312.0)

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

...できます。そしてそれを
配列で signature に渡してデータを定義します。例えば C における
struct timeval {
l
ong tv_sec;
l
ong tv_usec;
};
という構造体型に対応して
Timeval = struct(["long tv_sec", "long tv_usec"])
として構造体に対応す...
...alloc
* initialize
* to_ptr
* to_i
* 構造体の各メンバへのアクセサ
返されるクラスは Fiddle::CStruct を継承しています。詳しくは
そちらを参照してください。


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

requi...
...re 'fiddle/import'

module M
extend Fiddle::Importer
dlload "libc.so.6"
extern "int gettimeofday(void*, void*)"
Timeval = struct(["long tv_sec", "long tv_usec"])
end

time = M::Timeval.malloc
M.gettimeofday(time, Fiddle::NULL)
p time.tv_sec
p time.tv_usec...

絞り込み条件を変える

<< 1 2 > >>