Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > fiddleライブラリ > Fiddle::Pointerクラス

class Fiddle::Pointer

クラスの継承リスト: Fiddle::Pointer < Object < Kernel < BasicObject

要約

メモリ領域を表すクラスです。C 言語のポインタに相当します。

2.2.0 で削除された dl の DL::CPtr に対応します。 DL::CPtrとほぼ同じインターフェースを持ちます。

特異メソッド

定義 説明
self[val] -> Fiddle::Pointer
to_ptr(val) -> Fiddle::Pointer

与えられた val と関連した Pointer オブジェクトを生成して返します。

malloc(size, free = nil) -> Fiddle::Pointer

与えられた長さ size のメモリ領域を確保し、それを表す Pointer オブジェクトを生成して返します。

new(addr, size = 0, free = nil) -> Fiddle::Pointer

与えられた addr が指すメモリ領域を表す Pointer オブジェクトを生成して返します。

インスタンスメソッド

定義 説明
self + n -> Fiddle::Pointer

自身のアドレスに n バイトを足した新しい Pointer オブジェクトを返します。

ptr -> Fiddle::Pointer
+ self -> Fiddle::Pointer

自身の指す値を Pointer にして返します。

self - n -> Fiddle::Pointer

自身のアドレスから n バイトを引いた新しい Pointer オブジェクトを返します。

ref -> Fiddle::Pointer
- self -> Fiddle::Pointer

自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。

self <=> other -> Integer

ポインタの指すアドレスの大小を比較します。

eql?(other) -> bool
self == other -> bool

ポインタの指すアドレスが同一ならばtrueを返します。

self[offset] -> Integer

自身の指すアドレスに offset バイトを足したメモリ領域の先頭を整数として返します。

self[offset, len] -> String

自身の指すアドレスに offset バイトを足したメモリ領域の先頭 len バイトを複製し、 文字列として返します。

self[offset] = n

自身の指すアドレスに offset バイトを足したメモリ領域を指定された n に書き換えます。

self[offset, len] = v

自身の指すアドレスに offset バイトを足したメモリ領域の先頭 len バイトに 文字列 v をコピーします。

free -> Fiddle::CFunc

GC がメモリを解放するのに使用する Fiddle::CFunc オブジェクトを返します。

free=(cfunc)

GC が自身を解放するのに使う関数を Fiddle::CFunc で指定します。

null? -> bool

自身が NULL なら true を返します。そうでないなら false を返します。

size -> Integer

自身の指す領域のサイズを返します。

size=(s)

自身の指す領域のサイズを変えます。

to_i -> Integer
to_int -> Integer

自身が指すアドレスを整数で返します。

to_s -> String
to_s(len) -> String

自身が指す領域から長さ len の文字列を複製して返します。

to_str -> String
to_str(len) -> String

自身が指す領域から長さ len の文字列を複製して返します。

to_value -> object

自身はヒープに確保された Ruby のオブジェクトを指すポインタであると仮定して、 自身が指すオブジェクトを返します。

継承したメソッド

! != __id__ instance_eval instance_exec method_missing singleton_method_added singleton_method_removed singleton_method_undefined !~ === =~ __send__ _dump class clone define_singleton_method display enum_for equal? extend freeze frozen? hash initialize initialize_copy inspect instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? itself marshal_dump marshal_load method methods nil? object_id pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods psych_to_yaml public_method public_methods public_send remove_instance_variable respond_to? respond_to_missing? singleton_class singleton_method singleton_methods taint tainted? tap to_a to_ary to_hash to_io to_proc to_regexp trust untaint untrust untrusted? .yaml_tag ::ARGF ::ARGV ::DATA ::ENV ::FALSE ::NIL ::RUBY_COPYRIGHT ::RUBY_DESCRIPTION ::RUBY_ENGINE ::RUBY_ENGINE_VERSION ::RUBY_PATCHLEVEL ::RUBY_PLATFORM ::RUBY_RELEASE_DATE ::RUBY_REVISION ::RUBY_VERSION ::SCRIPT_LINES__ ::STDERR ::STDIN ::STDOUT ::TOPLEVEL_BINDING ::TRUE