【发布时间】:2011-09-15 21:22:06
【问题描述】:
对 STDERR 句柄的工作原理感到好奇吗?让我们继续说批处理文件以保持简单和集中?我知道许多编程语言都接受 STDERR,所以我不知道是否可能用途不同,或者是否所有编程语言都有共同的功能?
如果有人可以提供一些关于您看到的常见用法的示例,或者解释为什么有人可以将它用于 ???情况会很棒。
提前致谢!
【问题讨论】:
对 STDERR 句柄的工作原理感到好奇吗?让我们继续说批处理文件以保持简单和集中?我知道许多编程语言都接受 STDERR,所以我不知道是否可能用途不同,或者是否所有编程语言都有共同的功能?
如果有人可以提供一些关于您看到的常见用法的示例,或者解释为什么有人可以将它用于 ???情况会很棒。
提前致谢!
【问题讨论】:
STDERR 代表标准错误。顾名思义,它主要用于报告错误行为。默认情况下,在我知道的每个系统上,我都指向终端,就像 STDOUT 一样。然而,这些实体分别表示,允许用户仅将正常输出打印到终端并将错误重定向到日志(仅一个示例)。
【讨论】:
通常您会使用 stderr 来获取错误消息。
如果你在命令行上运行一个程序,你可以捕获它的标准输出和/或标准错误
例如:
myprogram.exe > stdout.txt
会将 myprogram.exe 写入的任何内容捕获到 stdout 并将其放在 stdout.txt 中。但是,写入 stderr 的内容不会放入 stdout.txt。因此,您可以在不捕获错误消息的情况下捕获程序的常规输出。
【讨论】:
myprogram 2> stderr.txt得到stderr输出
myprogram 2> stderr.txt
grep somestring somefile | wc -w 但 somefile 不存在,你想看到 grep 写的错误信息,你不希望 wc 计算错误信息中的字数。