在Lua中,如何将控制台输出打印到文件(管道)而不是使用标准输出?

时间:2014-02-06 01:06:58

标签: file-io io lua

我使用Torch7和Lua编程语言。我需要一个将我的控制台输出重定向到文件的命令,而不是将其打印到我的shell中。 例如,在Linux中,键入:

  

$ ls> DIR.TXT

系统会将命令“ls”的输出打印到文件dir.txt,而不是将其打印到默认输出控制台。 我需要一个类似Lua的命令。有谁知道吗?

[编辑] 用户建议我将此操作称为 piping 。所以,问题应该是:“如何在Lua中制作管道?”

[EDIT2] 我会使用这个#命令来执行:

  

$ torch'my_program'#printed_output.txt

2 个答案:

答案 0 :(得分:2)

看看这里 - > http://www.lua.org/pil/21.1.html

io.write似乎就是你要找的东西。

答案 1 :(得分:0)

Lua没有默认功能来从控制台输出创建文件。 如果您的应用程序记录其输出 - 您可能正在尝试这样做 - 只能通过修改Lua C ++源代码来实现此目的。

如果您的内部系统可以访问控制台的输出,您可以执行与此类似的操作(并将其设置在计时器上,因此它每隔25ms运行一次):

dumpoutput = function()
    local file = io.write([path to file dump here], "w+")
    for i, line in ipairs ([console output function]) do
        file:write("\n"..line);
    end
end

请注意,控制台输出功能必须将控制台的输出存储在表中。 要在最后清除控制台,只需执行os.execute( "cls" )