種類
- インスタンスメソッド (36)
- 文書 (23)
- 特異メソッド (12)
- ライブラリ (12)
- マクロ (12)
ライブラリ
-
fiddle
/ import (48)
クラス
-
Fiddle
:: CStruct (12)
モジュール
-
Fiddle
:: Importer (36)
キーワード
-
Data
_ Wrap _ Struct (12) -
NEWS for Ruby 2
. 2 . 0 (11) -
create
_ value (12) - fiddle (12)
-
ruby 1
. 6 feature (12) - value (12)
検索結果
先頭5件
- Fiddle
:: CStruct . malloc -> Fiddle :: CStruct - Fiddle
:: Importer # struct(signature) -> Class - VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval) - Fiddle
:: Importer # create _ value(type , val = nil) -> Fiddle :: CStruct - Fiddle
:: Importer # value(type , val = nil) -> Fiddle :: CStruct
-
Fiddle
:: CStruct . malloc -> Fiddle :: CStruct (21219.0) -
構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの) オブジェクトで返します。
...構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの)
オブジェクトで返します。
C における
return (struct foo*)malloc(sizeof(struct foo));
というコードと対応していると言えます。... -
Fiddle
:: Importer # struct(signature) -> Class (18131.0) -
C の構造体型に対応する Ruby のクラスを構築して返します。
...れを
配列で signature に渡してデータを定義します。例えば C における
struct timeval {
long tv_sec;
long tv_usec;
};
という構造体型に対応して
Timeval = struct(["long tv_sec", "long tv_usec"])
として構造体に対応するクラスを生成しま......スには以下のメソッドが定義されています
* クラスメソッド malloc
* initialize
* to_ptr
* to_i
* 構造体の各メンバへのアクセサ
返されるクラスは Fiddle::CStruct を継承しています。詳しくは
そちらを参照してください。
@par......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
time = M::Timeval.malloc
M.gettimeofday(time, Fiddle::NULL)
p time.tv_sec
p time.tv_usec... -
VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval) (6130.0) -
C の構造体 sval をラップして klass クラスの インスタンスである Ruby オブジェクトを生成し、それを返します。 mark、free はそれぞれ sval のマーク用・解放用の 関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
...されます。
使用例
struct mytype {
int i;
char *s;
};
VALUE
my_s_new(klass)
VALUE klass;
{
struct mytype *m = malloc(sizeof(struct mytype));
m->i = 0;
m->s = 0;
return Data_Wrap_Struct(MyClass, 0, free_my, m);... -
Fiddle
:: Importer # create _ value(type , val = nil) -> Fiddle :: CStruct (132.0) -
型が type で要素名が "value" であるような構造体を 定義(Fiddle::Importer#struct)し、 その構造体のメモリを Fiddle::CStruct#malloc で確保し、 確保したメモリを保持しているオブジェクトを返します。
...型が type で要素名が "value" であるような構造体を
定義(Fiddle::Importer#struct)し、
その構造体のメモリを Fiddle::CStruct#malloc で確保し、
確保したメモリを保持しているオブジェクトを返します。
type は "int", "void*" といった文字列... -
Fiddle
:: Importer # value(type , val = nil) -> Fiddle :: CStruct (132.0) -
型が type で要素名が "value" であるような構造体を 定義(Fiddle::Importer#struct)し、 その構造体のメモリを Fiddle::CStruct#malloc で確保し、 確保したメモリを保持しているオブジェクトを返します。
...型が type で要素名が "value" であるような構造体を
定義(Fiddle::Importer#struct)し、
その構造体のメモリを Fiddle::CStruct#malloc で確保し、
確保したメモリを保持しているオブジェクトを返します。
type は "int", "void*" といった文字列... -
ruby 1
. 6 feature (54.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...puts md
puts MD5.hexdigest("123")
: ((<Struct>))
フリーズされた構造体オブジェクトが変更できていました。また、$SAFE =
4 のときの変更を禁止するようにしました。((<ruby-talk:19167>))
cat = Struct.new("Cat", :name, :age, :life)
a = cat.......p a
=> ruby 1.6.4 (2001-06-04) [i586-linux]
#<Struct::Cat name="dog", age=12, life=7>
=> ruby 1.6.4 (2001-08-06) [i586-linux]
-:4:in `name=': can't modify frozen Struct (TypeError)
from -:4
cat = Struct.new("Cat", :name, :age, :life)
a = cat.new("cat", 12,......正に例外を返す場合がありました。
: malloc の再帰呼び出し問題
stdio が内部で malloc() を呼び出す場合、Thread と相性が悪かったことに対
処しました。(setvbuf() を使用することで malloc() が呼ばれるのを避けた)
((<ruby-dev:127... -
NEWS for Ruby 2
. 2 . 0 (48.0) -
NEWS for Ruby 2.2.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
..._pack -> rb_integer_pack
* rb_quad_unpack -> rb_integer_unpack
* rb_read_check : access struct FILE internal. no replacement.
* rb_struct_iv_get : internal function. no replacement.
* struct rb_blocking_region_buffer : internal type. no replacement.
* rb_thread_blocking_region_be......AP_BEG -> rb_thread_call_without_gvl family
* TRAP_END -> rb_thread_call_without_gvl family
* rb_thread_select -> rb_thread_fd_select
* struct rb_exec_arg : internal type. no replacement.
* rb_exec : internal function. no replacement.
* rb_exec_arg_addopt : internal function. no......XT を参照してください。
=== ビルドシステムの更新
* ./configure のオプション --with-jemalloc を追加しました。
jemalloc はシステムの malloc が遅かったり、フラグメンテーションする傾向にある場合に適切かもしれません。911... -
fiddle (18.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
...Timeval = struct( ["long tv_sec",
"long tv_usec"])
end
timeval = M::Timeval.malloc
e = M.gettimeofday(timeval, nil)
if e == 0
p timeval.tv_sec #=> 1173519547
end
上の例で、メモリの割り当てに M::Timeval.new ではなく
M::Timeval.malloc を使用し...