使用 Lua C-API 有没有一种连接两个LuaL_Buffer
s 的有效方法?我宁愿不做任何不必要的 memcopys 并希望结果被luaL_pushresult()
. 缓冲区包含嵌入的零,因此我无法将它们转换为 char 数组并使用luaL_addstring()
. 修改任一缓冲区都是可以接受的。
luaL_Buffer buf1;
luaL_Buffer buf2;
luaL_buffinit(L, &buf1);
luaL_buffinit(L, &buf2);
luaL_addchar(&buf1, "a");
luaL_addchar(&buf2, "b");
luaL_addchar(&buf1, "\0");
luaL_addchar(&buf2, "\0");
luaL_pushresult(L, Want_this(&buf1, &buf2) ); // "a\0b\0" is now the Lua string
// at the top of the stack