36件ヒット
[1-36件を表示]
(0.007秒)
キーワード
- fiddle (12)
-
fiddle
/ import (12) -
rdoc
/ parser / c (12)
検索結果
-
fiddle (85.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
...は以下のとおりです。
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
extern('int gettimeofday(void *, void *)')
Timeval = struct( ["long tv_sec",
"long tv_usec"])
end
timeval = M::Timeval.malloc
e = M.gettimeofday(timeva......e 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......インタとして扱われます。
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload 'libc.so.6'
extern 'void * memmove(void *, void *, unsigned long)'
end
s = 'xxxyyyzzz'
M.memmove(s, 'abc', 3)
p s #=> "abcyyyzzz"
char * 以外の型のポイ... -
fiddle
/ import (49.0) -
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
...ピーする関数
void first_char(char **s, char *buf, int len)
があったとします。これを呼び出すにも以下のように Array#pack を使用します。
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload './libstrfirst.so'
extern 'void first_char(char **,......porter
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(10......0), 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]
==== 複雑な構造体を定義したい
構造体をメンバとして... -
rdoc
/ parser / c (7.0) -
C 言語で記述されたソースコードから組み込みクラス/モジュールのドキュメン トを解析するためのサブライブラリです。
...rb_ary_flatten(ary)
VALUE ary;
{
ary = rb_obj_dup(ary);
rb_ary_flatten_bang(ary);
return ary;
}
...
void
Init_Array()
{
...
rb_define_method(rb_cArray, "flatten", rb_ary_flatten, 0);
上記の例の場合、rb_ary_flatten 関数と...