Skip to content

sco_settings_v1.get_string

A string setting’s text, or an enum setting’s choice, with the size handshake.

sco_result (*)(sco_plugin *, const char *, char *, uint32_t *)

Service index

Property Value
Symbol sco_settings_v1.get_string
Record ID sco-settings-v1-get-string
Service sco.settings
Table sco_settings_v1
Version macro SCO_SETTINGS_VERSION_1_0
Packed table version 65536
Since / availability size >= 40; 1.0
Complete member extent (x64 bytes) 40
Table size (x64 bytes) 48

Header source

sco_result (*get_string)(sco_plugin* self, const char* name, char* out, uint32_t* inout_size);
A string setting’s text, or an enum setting’s choice, with the size handshake.

Common settings errors; TOO_MANY reports required NUL-inclusive bytes without writing string; inout_size reset on other failure. Caller text untouched on failure.

unspecified

Caller outputs; host owns settings; no allocation transfer. String/error copy may allocate internally.

Any thread; memory reads under lock. Recursive reentrancy unspecified.

unspecified

unspecified

No cancellation entrypoint; synchronous reads; unload withdraws settings. Retained-provider faults skip owner resource-release hooks and require restart; backing resources remain retained, not safe for cached calls.

Status labels are copied verbatim from the catalogue: direct is native access; typed-wrapper is wrapper-backed; restricted is a subset/adaptation; unsupported means no supported route is established. No status implies universal safety.

Language Catalogue status Source evidence / wrapper tokens
c direct include/sco_settings.h
(*get_string)
cpp typed-wrapper include/scosdk/settings.hpp
const sco_result r = t_->get_string(self_, name, s.data(), &size);
csharp typed-wrapper sdk/csharp/Sco.Sdk/Settings.cs
ScoResult r = Storage.Sized((buf, size) => { fixed (byte* np = n) return _t->get_string(Self, np, buf, size); }, out byte[] b);
lua typed-wrapper plugins/lua/sco_lua.c
if (r == SCO_BAD_ARG && (r = st->get_string(s->self, name, buf, &size)) == SCO_OK) { lua_pushlstring(L, buf, size - 1); return 1; }

None identified in the catalogue; this is not proof none can exist.

ABI pins prove layout, not semantic behavior or a live game session.