Skip to content

duk_get_lstring()

1.0.0 string stack

プロトタイプ

c
const char *duk_get_lstring(duk_context *ctx, duk_idx_t idx, duk_size_t *out_len);

スタック

| ... | val | ... |

要約

idx にある文字列の文字データポインタと長さを、値を変更したり強制したりすることなく取得します。読み取り専用で NUL 終端の文字列データへの非 NULL ポインタを返し、文字列のバイト長を *out_len に書き込む (out_len が非 NULL の場合)。値が文字列でない場合、またはインデックスが無効な場合は、NULL を返し、*out_len に 0 を書き込む (out_len が NULL でない場合)。

文字列の文字数(バイト数ではなく)を取得するには、 duk_get_length() を使用します。

これは、バッファデータポインタの扱い方とは異なります(技術的な理由による)。

c
const char *str;
duk_size_t len;

str = duk_get_lstring(ctx, -3, &len);
if (str) {
    printf("value is a string, %lu bytes\n", (unsigned long) len);
}

参照

duk_get_string duk_get_lstring_default duk_get_string_default