如何在unix中存储c / c ++程序的文件输出

时间:2017-07-07 14:15:16

标签: unix

我有一个用c ++编写的程序,让我们称之为program,它在运行时有很多输出。我想在文件上记录该输出,以便更容易查看它。我已经尝试了./program & > file ./program & |tee file但它无法正常工作(如果可行,我想在后台运行它。)

任何想法?

由于

编辑:它不起作用./program > file。我尝试将它放在背景上,前景上,但文件是空的....

3 个答案:

答案 0 :(得分:2)

如果要重定向stdout并将程序置于后台,请使用(./program > file)&

答案 1 :(得分:2)

重定向(>2>2>&1等)是实现此目标的标准方法。但是,这并不适用于所有可能的情况。

使用script捕获终端上显示的所有内容

script -c "./program arg1 --arg2" output.log

答案 2 :(得分:0)

您可以尝试

 program >& somefile &

然后结束&表示您希望将该作业放入background和(使用bash或zsh)>&重定向标准输出 stderr的

然后,您可以使用tail -f somefile(可能在不同的终端窗口中)查看正在增长的somefile。见tail(1)

顺便说一下,还有其他可能性。或许可以查看batch command(您可能需要安装at包以获得它)并进入nohup(1)