stderr文件将其内容转储到哪里?

时间:2013-01-30 13:47:20

标签: c linux

我想知道stderr在哪里转储其内容。 我有一个问题,比如它是否转储到syslog? 请解释一下。

5 个答案:

答案 0 :(得分:4)

stderr只是另一个输出流,就像stdout

它连接的位置取决于应用程序的调用方式。

例如,如果我运行foo.exe 2> errors.txt,则stderr将写入指定的文件。

答案 1 :(得分:1)

每当您决定重定向时,就会转储Stderr输出。

如果您在GUI环境中运行程序,点击图标或其他内容,请在.xsession-errors中查找$HOME

如果您从shell运行程序而不重定向stderr,您只需在终端上看到它(并且它不会保存在其他任何地方)。

答案 2 :(得分:1)

这取决于环境。

默认情况下,stderr通常连接到与stdout相同的位置,即当前终端。

否则,你不会看到那些令人讨厌的错误。

Here is a blog post关于将stderr重定向到系统的日志记录机制。

答案 3 :(得分:0)

stderr是一个流。它由拥有过程管理并输出。它去哪里'由如何调用进程定义。父进程可以收集它并将其写入文件,忽略它,将其重定向到/dev/null(基本上对其进行分箱)等。

答案 4 :(得分:0)

虽然stderr可以重定向到其他位置,但它通常会输出到与stdout相同的位置。要使它成为系统日志,你肯定要工作一点。这个链接: With bash, how can I pipe standard error into another process?

显示了如何将stderr管道传输到管道,如果另一个进程是写入“syslog”的进程,它将执行您想要的操作。但是对于大多数情况,将syslog功能添加到您自己的程序中可能更容易。