Tcl_Obj *Tcl_NewStringObj(const char *string, int length)
Creates a new value from the first length bytes of string, which should be a UTF-8 encoded string. If length is negative, it will take all bytes up to the first zero byte, which is very convenient for string literals.
The returned value (a Tcl_Obj reference) has a ref-count of zero.
https://www.tcl-lang.org/man/tcl8.4/TclLib/StringObj.htm