Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
macro STR2CSTR (Ruby 2.2.0)
[go: Go Back, main page]

Ruby 2.2.0 リファレンスマニュアル > 関数一覧 > STR2CSTR

macro STR2CSTR

char * STR2CSTR(VALUE str)

Ruby のオブジェクト str から C の文字列を取り出します。 str が String でない場合は to_str によって変換を試みます。

返り値を free したり直接書き換えたりしてはいけません。

STR2CSTR は、与えられたオブジェクトが文字列でなく to_str メソッ ドを持つ場合、内部で to_str を呼び出して暗黙の型変換を行い、 それが保持する文字列ポインタを返します。 しかし、このAPIでは暗黙の型変換結果となるオブジェクトがどこからも 保持されないため、注意して使用しないと結果が GC される可能性があります。

Ruby 1.7 以降では代わりに StringValuePtr を使用します。こちら は、引数の参照先が暗黙の型変換の結果に置き換わるため変換結果が GC されません。(Ruby 1.7 では、STR2CSTR() は、obsolete です)

StringValue は、引数が to_str による暗黙の型変換を期待する 場合に使用します。