Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > dlライブラリ > DL::CPtrクラス > []

instance method DL::CPtr#[]

self[offset] -> Integer[permalink][rdoc]

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

[PARAM] offset:
値を得たい領域のアドレスまでのオフセット
[EXCEPTION] DL::DLError:
self の保持するポインタが NULL である場合に発生します

例:

require 'dl'

s = 'abc'
cptr  = DL::CPtr[s]
p cptr[0]            #=> 97
p cptr[1]            #=> 98
self[offset, len] -> String[permalink][rdoc]

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

(self + offset).to_s(len) と同等です。 offset + len が自身のサイズより小さいかを検証しません。

[PARAM] offset:
値を得たい領域の先頭のアドレスまでのオフセットを整数で与えます。
[PARAM] len:
値を得たい領域のサイズを指定します。
[EXCEPTION] DL::DLError:
self の保持するポインタが NULL である場合に発生します

例:

require 'dl'

s = 'abc'
cptr  = DL::CPtr[s]
p cptr[0, 1]            #=> "a"
p cptr[1, 2]            #=> "bc"