139件ヒット
[101-139件を表示]
(0.049秒)
別のキーワード
種類
- 文書 (67)
- ライブラリ (24)
- 定数 (24)
- インスタンスメソッド (12)
- マクロ (12)
ライブラリ
-
fiddle
/ import (12) -
rbconfig
/ sizeof (24)
モジュール
-
Fiddle
:: Importer (12) - RbConfig (24)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) -
Data
_ Wrap _ Struct (12) - LIMITS (12)
-
NEWS for Ruby 2
. 1 . 0 (12) -
NEWS for Ruby 2
. 2 . 0 (11) -
NEWS for Ruby 2
. 5 . 0 (8) - bind (12)
-
fiddle
/ import (12) -
rbconfig
/ sizeof (12) -
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 4 feature (12)
検索結果
先頭4件
-
VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval) (234.0) -
C の構造体 sval をラップして klass クラスの インスタンスである Ruby オブジェクトを生成し、それを返します。 mark、free はそれぞれ sval のマーク用・解放用の 関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
...インスタンスである Ruby オブジェクトを生成し、それを返します。
mark、free はそれぞれ sval のマーク用・解放用の
関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
また RUBY_DATA_FUNC の定義は以下......す。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には sval が渡されます。
使用例
struct mytype {
int i;
char *s;
};
VALUE
my_s_new(klass)
VALUE klass;
{
struct mytype *m = malloc(sizeof(struct mytype));
m... -
Fiddle
:: Importer # bind(signature , *opts) { . . . } -> Fiddle :: Function (34.0) -
Ruby のブロックを C の関数で wrap し、その関数をモジュールに インポートします。
...Ruby のブロックを C の関数で wrap し、その関数をモジュールに
インポートします。
これでインポートされた関数はモジュール関数として定義されます。
また、Fiddle::Importer#[] で Fiddle::Function オブジェクトとして
取り出す......*, void*)"){|px, py|
x = px.to_s(Fiddle::SIZEOF_INT).unpack("i!")
y = py.to_s(Fiddle::SIZEOF_INT).unpack("i!")
x <=> y
}
end
data = [32, 180001, -13, -1, 0, 49].pack("i!*")
M.qsort(Fiddle::Pointer[data], 6, Fiddle::SIZEOF_INT, M["compare"])
p data.unpack("i!*") # =>... -
RbConfig
:: LIMITS -> Hash (34.0) -
Ruby インタプリタが作成された環境における、さまざまな型の値の範囲に関する情報を保持します。
...
Ruby インタプリタが作成された環境における、さまざまな型の値の範囲に関する情報を保持します。
下の例では、実行している Ruby インタプリタは INT_MAX が 2147483647 である環境で作成されたことを表しています。
//emlist[][......ruby]{
require 'rbconfig/sizeof'
RbConfig::LIMITS['INT_MAX'] # => 2147483647
//}... -
fiddle
/ import (24.0) -
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
...int)'
end
buf = '111'
M.first_char(['Abc', 'Def', 'Ghi'].pack('p*'), buf, 3)
p buf #=> 'ADG'
==== Ruby のオブジェクトをコールバックに渡したい
任意のクラスの Ruby オブジェクトをコールバックへ渡したい場合は Fiddle.#dlwrap を使って
ポイン......タ(整数)へ変換してから関数に渡し、コールバックの方で元に戻します。
例えば libc の qsort を使って Ruby の Time の配列をソートするには以下のようにします。
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.......end
buff = [Time.at(1), Time.now, Time.at(100), Time.at(10)]
a = buff.map{|t| Fiddle.dlwrap(t)}.pack('l!*')
M.qsort(a, buff.size, Fiddle::SIZEOF_VOIDP, M::QsortCallback)
p a.unpack('l!*').map{|t| Fiddle.dlunwrap(t).to_i } #=> [1, 10, 100, 1241603848]
==== 複雑な構造体...