テーブルをコピーする

 実験。

#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"

int main(void)
{
  lua_State * L1 = lua_open();
  lua_State * L2 = lua_open();
  luaopen_base(L1);
  luaopen_base(L2);
  luaopen_math(L1);
  lua_pushstring(L1, "math");
  lua_gettable(L1, LUA_GLOBALSINDEX);
  lua_pushstring(L2, "math");
  lua_xmove(L1, L2, 1);
  lua_settable(L2, LUA_GLOBALSINDEX);
  lua_dostring(L1, "print(math)");
  lua_dostring(L1, "print(math.cos)");
  lua_dostring(L2, "print(math)");
  lua_dostring(L2, "print(math.cos)");
  return 0;
}

 結果。

table: 004230C0
function: 00423040
table: 004230C0
nil