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

singleton method DL::CPtr.[]

self[val] -> DL::CPtr[permalink][rdoc]
to_ptr(val) -> DL::CPtr

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

val が文字列の場合は文字列が格納されているメモリ領域を指す CPtr オブジェクトを返します。 IO オブジェクトの場合は FILE ポインタを表す CPtr オブジェクトを返します。 val に to_ptr メソッドが定義されている場合は、val.to_ptr を呼びます。 上以外の場合は、整数に変換しそれをアドレスとする CPtr オブジェクトを返します。

[PARAM] val:
Ruby オブジェクトを指定します。
[EXCEPTION] DL::DLError:
to_ptr の返り値が CPtr オブジェクトでない場合に発生します
[EXCEPTION] TypeError:
上記のいずれの変換も不可能であった場合に発生します

例:

require 'dl'
s = "abc"
p DL::CPtr[s].to_i                 #=> 136186388
p [s].pack('p*').unpack('l!*')[0]  #=> 136186388