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

How I can capture all output of my application?

本文关键字:输出 何捕获 应用程序      更新时间:2023-10-16

我正在编写一个c++应用程序,我想同时捕获所有应用程序输出(断言,异常,段错误)到文本文件和控制台。我该怎么做呢?

您可以使用tee命令:

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

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

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