我在C++应用程序中使用了一个库,并试图捕获文件中的所有输出。我试图将stderr重定向到stdout,然后将stdout重定向到如下文件:
./a.out 2>&1 > out.txt
这几乎捕获了我的应用程序中的所有内容,但控制台上仍有一些与我正在使用的库相关的输出。我的问题是:
除了stdout/stderr还有什么吗?(标准物质除外)
如果有的话,我怎么能在我的箱子里辨认出来?
然后如何将这些重定向到同一个文件?
注意:在有人熟悉的情况下,库被称为“AA>”(这是一个事件驱动的模拟库/语言,主要用于系统/硬件设计)。
最佳答案
必须在流到流重定向之前设置输出文件,否则bash无法检测要输出的文件名。在您的例子中,您可以看到stderr输出。
参见参考手册。
解决方案:
./a.out >out.txt 2>&1
或者只是:
./a.out &>out.txt
关于bash - 如何识别Linux屏幕上正在打印的内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16147658/