gpt4 book ai didi

python - Python 中的 "stderr"有什么意义?

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:31 25 4
gpt4 key购买 nike

我是一名编程新手,我正在尝试了解 stdinstdoutstderr 的工作原理。据我了解,stdoutstderr 是我们可以直接从程序输出的两个不同位置。我想我不明白仅针对 stderr 的错误有第二个“输出流”有什么意义?为什么在常规 stdout 上没有错误?在 stderr 上出现错误允许我做什么(基本上为什么 stderr 有用)?

最佳答案

支持不同的 stout 和 stderr 流有两个“要点”:

  1. 当您编写可以链接在一起的应用程序(例如使用管道)时,您不希望“正常”输出与错误、警告、调试信息和其他“闲聊”混在一起。将它们混合在同一个流中会给链/管道中的下一个程序带来困难。

    例子:

    $ cat 一些文件 | grep 不是$ 回声 $?

    如果 cat 命令没有将其错误消息写入 stderr,则 grep 命令会看到一条 “找不到文件” 消息如果 "some-file" 不存在。然后它会(错误地)匹配“not”,并错误地设置管道的返回码。构建处理此类问题的管道将非常困难

  2. 独立的 stdout 和 stderr 流在(至少)UNIX 和类 UNIX 系统中得到支持,因为......嗯......从 1970 年代开始。它们是 POSIX 标准的一部分。如果一种新的编程语言的运行时库不支持这一点,那么它就会被认为是残废的;即不适合编写生产质量应用程序。

    (在编程语言的历史上,Python还是比较新的。)

但是,没有人会强制您编写应用程序以将 stderr 用于其预期目的。 (好吧......也许你 future 的同事会:-))

关于python - Python 中的 "stderr"有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50818465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com