【问题标题】:STDERR? What is it? What are its common uses?标准错误?它是什么?它的常见用途是什么?
【发布时间】:2011-09-15 21:22:06
【问题描述】:

对 STDERR 句柄的工作原理感到好奇吗?让我们继续说批处理文件以保持简单和集中?我知道许多编程语言都接受 STDERR,所以我不知道是否可能用途不同,或者是否所有编程语言都有共同的功能?

如果有人可以提供一些关于您看到的常见用法的示例,或者解释为什么有人可以将它用于 ???情况会很棒。

提前致谢!

【问题讨论】:

    标签: handle stderr


    【解决方案1】:

    STDERR 代表标准错误。顾名思义,它主要用于报告错误行为。默认情况下,在我知道的每个系统上,我都指向终端,就像 STDOUT 一样。然而,这些实体分别表示,允许用户仅将正常输出打印到终端并将错误重定向到日志(仅一个示例)。

    【讨论】:

      【解决方案2】:

      通常您会使用 stderr 来获取错误消息。

      如果你在命令行上运行一个程序,你可以捕获它的标准输出和/或标准错误

      例如:

      myprogram.exe > stdout.txt
      

      会将 myprogram.exe 写入的任何内容捕获到 stdout 并将其放在 stdout.txt 中。但是,写入 stderr 的内容不会放入 stdout.txt。因此,您可以在不捕获错误消息的情况下捕获程序的常规输出。

      【讨论】:

      • 你可以通过myprogram 2> stderr.txt得到stderr输出
      • 或者(至少在 linux 中)你可以说myprogram 2> stderr.txt
      • 问题:那么 STDERR 仅适用于可执行文件,如果编写它的人出错打印到 STDERR?或者它会根据某些情况自动生成,例如打印命令找不到指定的文件自动发送到STDERR+STDOUT?\
      • 编写程序的人决定什么输出到哪个流。
      • 对于流程管道尤其重要。例如。如果你做了grep somestring somefile | wc -w 但 somefile 不存在,你想看到 grep 写的错误信息,你不希望 wc 计算错误信息中的字数。
      猜你喜欢
      • 2010-09-27
      • 2011-12-17
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      相关资源
      最近更新 更多