问题标签 [stderr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 为什么我的 Java 程序不能读取 Perl 的 STDERR?
我们有一个 Perl 程序来验证从 Java 程序调用的 XML。它无法写入标准错误并挂在打印位置。
Perl 正在写入 STDERR,而 java 程序正在使用 getErrorStream() 函数读取 STDERR。但是 Perl 程序正在挂起写入 STDERR。我怀疑 Java 函数完全阻塞了 STDERR 流,而 Perl 正在等待这个流被释放。
Perl 中有没有办法克服这种阻塞并强制写入标准错误?由于 Java 仅进行读取,因此 API 不应按照 java doc 锁定 STDERR 流。
Perl 代码片段是:
Java代码片段是:
提前感谢帮助。
谢谢, 马修 Liju
bash - 在 bash 中将文本附加到 stderr 重定向
现在我正在使用 exec 将 stderr 重定向到错误日志
唯一的缺点是我必须以时间戳开始每次运行,因为 exec 只是将文本直接推送到日志文件中。有没有办法重定向 stderr 但允许我向它附加文本,例如时间戳?
bash - 在 bash 脚本中临时重定向 stderr
我有一个简单的脚本,用于启动另一个程序。这个其他程序有时可能会产生一个SIGSEGV
,这会破坏我的输出。因此,我添加了几行应该临时将 重定向stderr
到被忽略/dev/null
的行。SIGSEGV
以下是我的代码草稿:
问题是最后一行没有做我想要的。第一行显然有效,并将stderr
. 最后一行应该返回stderr
到它之前的位置(我只认为它与 相同stdout
)。
任何帮助将不胜感激!
windows - 如何在 Windows/DOS 上捕获标准错误?
我想将脚本中的错误捕获到文件而不是屏幕中。
在 *nix 中,这是通过 stderr 重定向完成的,通常
如何在 Windows 下的 CMD 脚本中执行此操作?
logging - 如何在不从 stdout 和 stderr 缓冲的情况下记录 make 输出
我在从自动构建记录到输出时遇到问题。
构建是使用 Makefile 和 makefile 实用程序完成的。
问题是像编译器命令行这样的正常输出会转到 stdout,而编译错误会转到 stderr。
我想从构建中获取输出,就像它在屏幕上显示的那样。所以像:
我尝试过的(来自 ksh 脚本)是:
制作 -k > build.log 2> build.log
这会产生一个日志文件,但问题是流被缓冲,因此日志文件中的结果全部混淆了。
我可以将输出捕获到 2 个单独的日志文件中,但是我没有关于如何将它们重新粘合到一个日志文件中的信息。
在这种情况下,有没有办法关闭 stdout 和 stderr 的缓冲?
stdout - ABAP 标准输出和标准错误
ABAP 是否允许写入标准输出和标准错误?我需要编写小程序来测试通过作业调度程序(Cronacle)与 SAP 系统的接口连接。例如,开始/编写“Hello World!” + 日期 + 时间到标准输出/退出。我是一名 .net 程序员,负责处理这个看似琐碎的程序,但我被困住了。
java - java stderr 去哪儿了?
我想知道,java stderr 标准在哪里?
我知道我可以使用 System.setErr 更改标准错误,它'重新分配“标准”错误输出流。',但我不知道哪个是“标准”。
我想详细说明我的问题:我有在 java (jni) 中使用的 C++ 库。问题是我似乎看不到来自我的 C++ 库的 stderr 输出。当我运行使用该库的 java api 时,我在 C++ 库中调用 assert() 并且在控制台中看不到输出。
shell - 模拟警告作为错误的Shell脚本?
一些编译器允许您将警告设置为错误,这样您就永远不会留下任何编译器警告,因为如果您这样做,代码将无法构建。这是一件好事。
不幸的是,一些编译器没有警告作为错误的标志。
我需要编写一个提供该功能的 shell 脚本或包装器。
大概它解析编译控制台输出并在有任何编译器警告(或错误)时返回失败,否则返回成功。“失败”也意味着(我认为)不应该产生目标代码。
什么是您可以编写的最短、最简单的 UNIX/Linux shell 脚本,它满足上述显式要求,以及以下隐含要求,否则其行为就像编译器一样: - 接受所有标志、选项、参数 - 支持 stdout 和 stderr 的重定向- 按照指示生成目标代码和链接
关键词:优雅,满足所有要求。
额外的功劳:易于合并到 GNU make 文件中。
谢谢你的帮助。
===线索===这个解决不同问题的方法,使用shell函数(?),将文本附加到 bash 中的stderr重定向,可能会出现。想知道如何邀请litb的朋友“非常了解 bash”来解决我的问题?
===回答状态===
感谢查理马丁的简短回答,但不幸的是,这就是我开始的。不久前,我使用它,将其发布以供办公室使用,并在几个小时内向我指出了它最严重的缺点:它将通过编译而没有警告,但只有错误。这真的很糟糕,因为那时我们正在交付编译器肯定不会工作的目标代码。简单的解决方案也不满足列出的其他要求。
感谢Adam Rosenfield的速记,以及Chris Dodd将 pipefail 引入解决方案。Chris 的回答看起来最接近,因为我认为 pipefail 应该确保如果编译实际上因错误而失败,我们将得到应有的失败。克里斯,管道故障是否适用于所有外壳?对上面列出的其他隐含要求有什么想法吗?