216件ヒット
[101-200件を表示]
(0.031秒)
ライブラリ
- fiddle (108)
-
fiddle
/ import (36)
クラス
-
Fiddle
:: CStruct (12) -
Fiddle
:: Function (24) -
Fiddle
:: Pointer (84)
モジュール
-
Fiddle
:: Importer (24)
キーワード
- +@ (12)
- -@ (12)
- StringValuePtr (12)
- [] (12)
- call (12)
- fiddle (12)
-
fiddle
/ import (12) -
is
_ pointer _ to _ heap (12) - ref (12)
-
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 4 feature (12) - size (12)
- sizeof (12)
- struct (12)
-
to
_ i (12) -
to
_ ptr (24)
検索結果
先頭5件
-
ruby 1
. 6 feature (84.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...返していた
p "foo".slice!(5,10)
=> ruby 1.6.7 (2002-03-01) [i586-linux]
nil
-:2:in `slice!': index 5 out of string (IndexError)
from -:2
=> ruby 1.6.7 (2002-08-01) [i586-linux]
nil
nil
: 2002-07-05 String#spli......前までは $; が有効にな
るのは引数省略時だけでした。
$; = ":"
p "a:b:c".split(nil)
=> -:2:in `split': bad separator (ArgumentError)
from -:2
ruby 1.6.7 (2002-03-01) [i586-linux]
=> ruby 1.6.7 (2002-07-30) [i586-linux]
["a", "b", "c"......メソッドを定義できるようにな
りました。
class <<true
def foo
"foo"
end
end
p true.foo
=> -:1: no virtual class for true (TypeError)
ruby 1.6.6 (2001-12-26) [i586-linux]
=> ruby 1.6.7 (2002-03-01)... -
Fiddle
:: Pointer . [](val) -> Fiddle :: Pointer (50.0) -
与えられた val と関連した Pointer オブジェクトを生成して返します。
...l に to_ptr メソッドが定義されている場合は、val.to_ptr を呼び、
Pointer オブジェクトに変換したものを返します。
val が整数の場合はそれをアドレスとする Pointer オブジェクトを返します。
上以外の場合は、整数に変換(to_int......す。
@raise Fiddle::DLError to_ptr の返り値が Pointer オブジェクトでない場合に発生します
@raise TypeError 上記のいずれの変換も不可能であった場合に発生します
例:
require 'fiddle'
s = "abc"
p Fiddle::Pointer[s].to_i #=> 136186388... -
fiddle (42.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
...mport'
module M
extend Fiddle::Importer
dlload "libc.so.6"
QsortCallback = bind("void *qsort_callback2(void*,void*)"){|ptr1,ptr2|
ptr1[0] <=> ptr2[0]
}
type
extern 'void qsort(void *, int, int, void *)'
end
buff = "3465721"
M.qsort(buff, buff.size, 1, M::Qsor......が渡されます。
整数であればそれがアドレスとみなされます。
to_ptr を持っているならば、それを呼びだし Fiddle::Pointer に
変換したものを用います。
to_i を持っているならば、それを呼びだし結果の整数を
アドレス... -
fiddle
/ import (30.0) -
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
...orter
dlload "libc.so.6"
QsortCallback = bind("void *qsort_callback(void*, void*)"){|a, b|
a0 = Fiddle.dlunwrap(a.ptr.to_i)
b0 = Fiddle.dlunwrap(b.ptr.to_i)
a0 <=> b0
}
extern 'void qsort(void *, int, int, void *)'
end
buff = [Time.at(1), Time.now, Time.at(100......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]
==== 複雑な構造体を定義したい
構造体をメンバとして持つ構造体を Fiddle::Im... -
Fiddle
:: Pointer # +@ -> Fiddle :: Pointer (25.0) -
自身の指す値を Pointer にして返します。
...り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
p cref.ptr.to_s #=> "abc"... -
Fiddle
:: Pointer # -@ -> Fiddle :: Pointer (24.0) -
自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
...値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
p cref.ptr.to_s #=> "abc"... -
Fiddle
:: Pointer # ref -> Fiddle :: Pointer (24.0) -
自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
...値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
p cref.ptr.to_s #=> "abc"... -
Fiddle
:: Importer # struct(signature) -> Class (18.0) -
C の構造体型に対応する Ruby のクラスを構築して返します。
...このメソッドが返すクラスには以下のメソッドが定義されています
* クラスメソッド malloc
* initialize
* to_ptr
* to_i
* 構造体の各メンバへのアクセサ
返されるクラスは Fiddle::CStruct を継承しています。詳しくは
そちらを... -
Fiddle
:: Importer # sizeof(t) -> Integer (12.0) -
C における sizeof(t) の値を返します。
...構造体のサイズを返します。
Fiddle::Importer#union で定義した共用体クラスも同様です。
t がクラスの場合、t が to_ptr というインスタンスメソッドを持っている
ならば t.size を返します。
それ以外の場合は Pointer[t].size を返し...