我想知道标准错误在哪里转储其内容。我有一个问题,比如它是否转储到系统日志?请解释。
问问题
1979 次
5 回答
4
stderr
只是另一个输出流,就像stdout
.
它连接的位置取决于应用程序的调用方式。
例如,如果我运行,foo.exe 2> errors.txt
那么stderr
将写入指定的文件。
于 2013-01-30T13:49:15.133 回答
1
每当您决定重定向 Stderr 输出时,它就会被转储。
如果您在 GUI 环境中运行程序,通过单击图标或其他东西,.xsession-errors
在您的$HOME
.
如果您从 shell 运行程序并且不重定向 stderr,您只会在终端上看到它(并且它不会保存在其他任何地方)。
于 2013-01-30T13:50:23.257 回答
1
于 2013-01-30T13:50:25.563 回答
0
stderr
是一个流。它由拥有进程管理和输出。它的“去向”由流程的调用方式定义。父进程可以收集它并将其写入文件、忽略它、将其重定向到/dev/null
(本质上是装箱)等。
于 2013-01-30T13:50:37.207 回答
0
虽然stderr
可以重定向到其他地方,但它通常输出到与stdout
. 要将其写入系统日志,您肯定需要做一些工作。此链接:
使用 bash,如何将标准错误传递到另一个进程?
显示了如何通过管道将 stderr 传输到管道,并且如果另一个进程是写入“syslog”的进程,它将执行您想要的操作。但在大多数情况下,将系统日志功能添加到您自己的程序中可能更容易。
于 2013-01-30T13:52:48.780 回答