我如何捕获应用程序的所有输出?

时间:2015-05-19 16:03:23

标签: c++ linux

我正在编写一个C ++应用程序,我希望同时将所有应用程序输出(断言,异常,段错误)捕获到文本文件和控制台中。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

您可以使用tee命令:

$ /path/to/myapp 2>&1 | tee /path/to/file.log

答案 1 :(得分:1)

使用dup2函数重定向stdout_fileno,例如:

fd = open(filename, O_CREAT|O_APPEND|O_WRONLY, 0755);
close(STDOUT_FILENO);
dup2(fd, STDOUT_FILENO);