143件ヒット
[1-100件を表示]
(0.087秒)
種類
- インスタンスメソッド (66)
- 定数 (33)
- ライブラリ (22)
- 特異メソッド (11)
- 関数 (11)
ライブラリ
- fiddle (99)
-
fiddle
/ import (11)
クラス
-
Fiddle
:: Function (11) -
Fiddle
:: Pointer (55)
モジュール
- Fiddle (33)
-
Fiddle
:: Importer (11)
キーワード
- +@ (11)
- -@ (11)
-
SIZEOF
_ INTPTR _ T (11) -
SIZEOF
_ PTRDIFF _ T (11) -
SIZEOF
_ UINTPTR _ T (11) - fiddle (11)
-
fiddle
/ import (11) - new (11)
- ref (11)
-
ruby
_ xrealloc (11) - sizeof (11)
検索結果
先頭5件
-
Fiddle
:: Pointer # size -> Integer (21113.0) -
自身の指す領域のサイズを返します。
...す領域のサイズを返します。
基本的には Fiddle::Pointer.new で指定したサイズが返されます。
Fiddle::Pointer.to_ptr で文字列を変換したときは、そのバイト数が返されます。
Fiddle::Pointer#size= でこの値を変更することができます。... -
Fiddle
:: Pointer # ptr -> Fiddle :: Pointer (18219.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
:: SIZEOF _ INTPTR _ T -> Integer (15200.0) -
Cでの sizeof(intptr_t) の値
...Cでの sizeof(intptr_t) の値... -
Fiddle
:: SIZEOF _ PTRDIFF _ T -> Integer (15200.0) -
Cでの sizeof(ptrdiff_t) の値
...Cでの sizeof(ptrdiff_t) の値... -
Fiddle
:: SIZEOF _ UINTPTR _ T -> Integer (15200.0) -
Cでの sizeof(uintptr_t) の値
...Cでの sizeof(uintptr_t) の値... -
Fiddle
:: Importer # sizeof(t) -> Integer (9124.0) -
C における sizeof(t) の値を返します。
...C における sizeof(t) の値を返します。
t が文字列の場合、その文字列が表す C の型の size が返されます。
例えば、sizeof("char") は 1 を返します。
sizeof("char*") は環境によって 4 や 8 といった値を返します。
Fiddle::Importer#struct......ズを返します。
Fiddle::Importer#union で定義した共用体クラスも同様です。
t がクラスの場合、t が to_ptr というインスタンスメソッドを持っている
ならば t.size を返します。
それ以外の場合は Pointer[t].size を返します。
@param......@raise Fiddle::DLError t として文字列を渡し、それが表している型を Fiddle が知らなかった
場合に発生します
例:
require 'fiddle/import'
module M
extend Fiddle::Importer
Timeval = struct(["long tv_sec", "long tv_usec"])
p sizeof("char") #... -
void * ruby
_ xrealloc(void *ptr , long size) (6300.0) -
引数と返り値の意味は realloc() と同じ。 ただしメモリ割り当てに失敗したときは GC を行いそれでもだめなときは NoMemoryError を raise する。 つまりこの関数が返り値を返したときは常に割り当ては成功している。
...引数と返り値の意味は realloc() と同じ。
ただしメモリ割り当てに失敗したときは
GC を行いそれでもだめなときは NoMemoryError を raise する。
つまりこの関数が返り値を返したときは常に割り当ては成功している。... -
fiddle (6036.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
...*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
dl と同等の機能を持ちますが、
dl は 2.0 以降deprecated となり、2.2.0 で削除されました。このライブラリ
を代わりに使います。
=== 使い方
通常......fiddle/import'
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::QsortCallback)
p buff #=> "1234567"
ここで M::QsortCallback はブロックを呼ぶ Fiddle::Function オブジェクトです。
==== ポインタを扱う
fiddle においては、文字列/整数/Fiddle::Pointerをポインタとして
扱うことができます。
文字列をポ... -
fiddle
/ import (6030.0) -
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
...fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
通常は fiddle ライブラリを使わずこの fiddle/import ライブラリを使います。
主な使い方は fiddle も参照してください。
=== 高度な使用法
====...... libc の qsort を使って Ruby の Time の配列をソートするには以下のようにします。
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
QsortCallback = bind("void *qsort_callback(void*, void*)"){|a, b|
a0 = Fiddle.dlunwrap(a.ptr.......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), 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!*')... -
Fiddle
:: Function . new(ptr , args , ret _ type , abi=Fiddle :: Function :: DEFAULT , name: nil) -> Fiddle :: Function (3341.0) -
ptr (関数ポインタ)から Fiddle::Function オブジェクトを 生成します。
...ptr (関数ポインタ)から Fiddle::Function オブジェクトを
生成します。
ptr には Fiddle::Handle から Fiddle::Handle#sym などで取りだした
関数ポインタ(を表す整数)、もしくは関数を指している
Fiddle::Pointer を渡します。
args、ret_type で関......le::TYPE_VOID
* Fiddle::TYPE_VOIDP
* Fiddle::TYPE_CHAR
* Fiddle::TYPE_SHORT
* Fiddle::TYPE_INT
* Fiddle::TYPE_LONG
* 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::STDCALL
のどちらかを指定します。
require 'fiddle'
h = Fiddle::Handle.new('libc.so.6')
func = Fiddle::Function.new(h.sym("strlen"), [Fiddle::TYPE_VOIDP],...