如何在C-API中使用"%q"格式化一个lua_Buffer

string.format 可以将字符串格式化,以添加适当的转义字符,从而使其安全地读回到 Lua 解释器。我如何最好地使用此函数来格式化来自 C-API 的 Lua_Buffer?更一般地说,我如何从 C-API 访问 string.* 函数?我可以使用 lua_pcall("string.format", ...),但我想知道是否有更直接的方法。

点赞
用户501459
用户501459

format 函数在 lstrlib.c 模块中被定义为静态,据我所知,唯一访问它的方式是通过 string 表。

我想你也可以查看 lstrlib.c 中的 addquoted 并根据需要进行调整,但是直接调用 string.format 可能更容易些。

2012-07-10 16:32:03