-1

我正在测试第一次在 Lua (5.2.1) 脚本中写入文件,在两个版本之间交替:

版本 1

local ofile = io.open("save.txt", "w")
  ofile:write("Writing to file...")
  ofile:close()

版本 2

io.output("save.txt")
io.write("Writing to file...")
io.close()

在 ZeroBrane Studio 中进行调试时,这两种方法都可以正常工作,但是当将其插入我的程序的脚本中时,不会写入该文件,并且在该点之后出现的任何代码显然都不会执行。

顺便说一句,我在我的程序中包含了 I/O 库。

lua_State *lua = luaL_newstate();

static const luaL_Reg lualibs[] = {
    { "base", luaopen_base }, 
    { "io", luaopen_io },
    { "string", luaopen_string },
    { "table",  luaopen_table },
    { NULL, NULL}
};

const luaL_Reg *lib = lualibs;
for(; lib->func != NULL; lib++) {
  lib->func(lua);
  lua_settop(lua, 0);
}
4

1 回答 1

0

我确定问题与如何加载 Lua 库有关。只需将单个加载更改为:

luaL_openlibs(lua);

修复了整个问题。但是我仍然不明白为什么单独调用 I/O 库不起作用。

于 2012-11-27T14:31:30.553 回答