我正在尝试将 Lua (5.1) 的 stdout 重定向到文件而非控制台。
有一个第三方API(无法修改),其中包含一个打印序列化数据的函数(我不知道哪个函数会打印,假设是某种 print() 函数)
这些数据过于冗长,无法适应屏幕(也无法滚动),因此我希望将该函数的输出定向到文件而非控制台。
我无法修补或操作 Lua 版本。
我的想法是使用文档质量较差的 io.output() 文件将 stdout 更改为文件,但似乎根本行不通。
io.output("foo") -- creates file "foo", should set stdout to "foo"?
print("testing. 1, 2, 3") -- should print into "foo", goes to console instead
有没有办法将函数的输出强制写入文件,或者将所有标准输出强制写入文件而不是控制台?谢谢。
print
函数(而不是它的C API等价物),你可以用自己的print
进行替换:print = function(...) io.write(table.concat({...}, "\t")) end
。如果它正在使用C API,我认为没有办法重定向或 monkeypatch 它。有关详细信息,请参见此线程:http://lua-users.org/lists/lua-l/2012-11/msg00125.html。 - Paul Kulchenkofoo = fs.open("foo", "w")
foo.writeLine("testing. 1, 2, 3")
foo.close()
- CHlM3RA