るりまサーチ (Ruby 2.7.0)

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

別のキーワード

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

ライブラリ

クラス

モジュール

キーワード

検索結果

fiddle/import (150289.0)

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

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

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

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

=== 高度な使用法

==== ○○の配列を関数に渡したい

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

require 'fiddle/import'
m...

Fiddle::Importer#typealias(new, orig) -> () (78901.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 (70219.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#create_value(type, val = nil) -> Fiddle::CStruct (69919.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::CStruct.malloc -> Fiddle::CStruct (69901.0)

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

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

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

絞り込み条件を変える

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

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

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

これで取り込んだライブラリの関数は Fiddle::Importer#extern で
インポートできます。

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

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


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

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

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

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

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

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

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

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

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

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

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

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

@return インポートした関数を表す ...

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

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

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

共用体型を Ruby 上で定義する方法は Fiddle::Importer#struct と
ほぼ同様です。C における
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 "lib...

Fiddle::Importer#struct(signature) -> Class (42937.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
...

絞り込み条件を変える

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

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

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

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

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

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

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

@param signature 関数...

Fiddle::CStruct.new(addr) -> Fiddle::CStruct (42901.0)

addr のアドレスが指すメモリを構造体のアドレスとみなし、 構造体を作ります。

addr のアドレスが指すメモリを構造体のアドレスとみなし、
構造体を作ります。

C におけるキャストと似ています。
return (struct foo*)addr;
というコードと対応していると言えます。

@param addr アドレス

Fiddle::Importer#[](name) -> Fiddle::Function|nil (42901.0)

Fiddle::Importer#extern でインポートした関数の Fiddle::Function オブジェクト を返します。

Fiddle::Importer#extern でインポートした関数の
Fiddle::Function オブジェクト
を返します。

name という名前の関数が存在しない場合は nil を返します。

@param name 関数の名前の文字列