96件ヒット
[1-96件を表示]
(0.016秒)
種類
- インスタンスメソッド (72)
- ライブラリ (12)
- 特異メソッド (12)
ライブラリ
- fiddle (72)
-
fiddle
/ import (12)
クラス
-
Fiddle
:: Function (12) -
Fiddle
:: Pointer (60)
モジュール
-
Fiddle
:: Importer (12)
検索結果
先頭5件
-
Fiddle
:: Pointer # size -> Integer (21131.0) -
自身の指す領域のサイズを返します。
...す領域のサイズを返します。
基本的には Fiddle::Pointer.new で指定したサイズが返されます。
Fiddle::Pointer.to_ptr で文字列を変換したときは、そのバイト数が返されます。
Fiddle::Pointer#size= でこの値を変更することができます。... -
Fiddle
:: Pointer # ptr -> Fiddle :: Pointer (18237.0) -
自身の指す値を Pointer にして返します。
...自身の指す値を 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 # sizeof(t) -> Integer (6130.0) -
C における sizeof(t) の値を返します。
...C における sizeof(t) の値を返します。
t が文字列の場合、その文字列が表す C の型の size が返されます。
例えば、sizeof("char") は 1 を返します。
sizeof("char*") は環境によって 4 や 8 といった値を返します。
Fiddle::Importer#struct......した共用体クラスも同様です。
t がクラスの場合、t が to_ptr というインスタンスメソッドを持っている
ならば t.size を返します。
それ以外の場合は Pointer[t].size を返します。
@param t サイズを計算する対象
@raise Fiddle::DLErro......ている型を Fiddle が知らなかった
場合に発生します
例:
require 'fiddle/import'
module M
extend Fiddle::Importer
Timeval = struct(["long tv_sec", "long tv_usec"])
p sizeof("char") # => 1
p sizeof("void*") # => 8
p sizeof(Timeval) # => 16
end... -
Fiddle
:: Pointer # +@ -> Fiddle :: Pointer (3137.0) -
自身の指す値を Pointer にして返します。
...自身の指す値を 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 # -@ -> Fiddle :: Pointer (3136.0) -
自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
...指す Pointer オブジェクトを返します。
C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
c......ref = 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 (3136.0) -
自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
...指す Pointer オブジェクトを返します。
C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
c......ref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
p cref.ptr.to_s #=> "abc"... -
Fiddle
:: Function . new(ptr , args , ret _ type , abi=Fiddle :: Function :: DEFAULT , name: nil) -> Fiddle :: Function (153.0) -
ptr (関数ポインタ)から Fiddle::Function オブジェクトを 生成します。
...ptr (関数ポインタ)から Fiddle::Function オブジェクトを
生成します。
ptr には Fiddle::Handle から Fiddle::Handle#sym などで取りだした
関数ポインタ(を表す整数)、もしくは関数を指している
Fiddle::Pointer を渡します。
args、ret_type で関......NG
* Fiddle::TYPE_LONG_LONG
* Fiddle::TYPE_FLOAT
* Fiddle::TYPE_DOUBLE
* Fiddle::TYPE_INTPTR_T
* Fiddle::TYPE_UINTPTR_T
* Fiddle::TYPE_PTRDIFF_T
* Fiddle::TYPE_SIZE_T
* Fiddle::TYPE_SSIZE_T
abi で呼出規約を指定します。
* Fiddle::Function::DEFAULT
* Fiddle::Function:......VOIDP],
Fiddle::TYPE_INT, name: "strlen")
p func.ptr == h.sym("strlen") # => true
p func.call("abc") # => 3
p func.name # => "strlen"
@param ptr C の関数を指す Fiddle::Pointer オブジェクトもしくは
アドレスを表す整数
@param args... -
fiddle (60.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
...bc.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::QsortCallback)
p buff #=> "1234567"
ここで M::QsortCallba......ブロックを呼ぶ Fiddle::Function オブジェクトです。
==== ポインタを扱う
fiddle においては、文字列/整数/Fiddle::Pointerをポインタとして
扱うことができます。
文字列をポインタ引数として渡すと文字列のメモリ領域を指す
ポ......す
Fiddle::Pointer は保持している C ポインタに変換されます。
文字列であればその先頭ポインタになります。
IO オブジェクトであれば FILE* が渡されます。
整数であればそれがアドレスとみなされます。
to_ptr を持って...