问题标签 [stdout]
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.
c# - 从 C# 中重定向本机 dll 标准输出/标准错误
我正在尝试重定向第三方本机 dll 的输出,该 dll 从 C# 中输出到 stdout/stderr。stdout 和 stderr 的输出都应该进入一个日志文件。
这是我的想法(两个流的 x2):
- 创建AnonymousPipeServerStream
- 通过获取管道的句柄
_outServer.SafePipeHandle.DangerousGetHandle()
- 使用 P/Invoke 调用带有所述句柄的SetStdHandle
- 创建连接到服务器流的AnonymousPipeClientStream
- 创建一个线程以循环读取
AnonymousPipeClientStream
并输出到记录器。 - 定期
flush
调用AnonymousPipeServerStream
所以这一切似乎运作良好......在我的代码中。一旦控制权传递给本机 DLL,一切都会回到标准错误!如果需要,我可以调试本机 DLL 并查看发生了什么问题,但是......我真的不想,所以在我花 10 个小时试图弄清楚句柄如何工作之前,有没有人有任何想法?
作为参考,测试代码位于: http: //pastebin.com/f3eda7c8。有趣的是构造函数中的第 58-89 行。(当然,稍后我会添加错误处理等)。
warnings - 我应该向 STDERR 或 STDOUT 输出警告吗?
我正在制作一个脚本来处理一组预定义的数据,并输出到一个文件中。当一个数据(在我可以访问的每一组中始终是“常规”)不同时,我想弹出一个警告,说明该值未处理(因为我不知道它如何影响数据)。我应该将此警告输出到 stderr 还是 stdout?
c++ - VCL 形成应用程序写入标准输出
我的公司有一个带有文档对象模型的大型 Windows 应用程序:打开应用程序、打开文件、进行一些更改、保存、关闭。我试图从顶部切断 GUI 并创建一个控制台应用程序,它接受一些参数、打开文件、执行一些有用的操作、保存、关闭文件并终止。因为有大量遗留代码,我不得不使用 VCL 表单应用程序并从命令行(或批处理脚本)启动它。我真的需要能够打印到标准输出,这样我才能写出状态消息,响应“--version”和“-?”等选项。我整个上午都在谷歌搜索这个主题,但没有找到任何有用的东西。
该应用程序是使用 VCL 在 CodeGear C++ Builder 2007 中编写的。
python - 在 Python 中通过 sys.stdout 编写 unicode 字符串
假设一个人不能使用print
(并因此享受自动编码检测的好处)。所以这给我们留下了sys.stdout
. 然而,sys.stdout
它是如此愚蠢以至于不做任何明智的编码。
现在阅读 Python wiki 页面PrintFails并尝试以下代码:
然而,这也不起作用(至少在 Mac 上)。太明白为什么:
(UTF-8 是终端所理解的)。
因此,将上面的代码更改为:
现在 unicode 字符串已正确发送到sys.stdout
终端并因此正确打印在终端上(sys.stdout
连接到终端)。
这是写入 unicode 字符串的正确方法sys.stdout
还是我应该做其他事情?
编辑:有时——比如说,当将输出管道传输到less
——sys.stdout.encoding
时None
。在这种情况下,上面的代码将失败。
text - 二进制标准输入和标准输出
我正在寻找编写一对实用程序,它们在标准输入上读取换行符分隔的整数列表并输出其二进制(4 字节)等效于标准输出,反之亦然。
我的第一个想法是一个简单的 bash/linux 命令可以做到这一点,但我找不到。我的第二个想法是在 C++ 中执行此操作,但我不知道如何将 stdin 或 stdout 更改为二进制流。
关于这样做的好方法有什么想法吗?我对任何特定的编程语言都是公正的。
c - 在 read() 之后使用 getchar()
c 用于键盘捕获。以下代码查找何时按下箭头键/ esc。同时,我想阅读用户输入的整个单词,这些单词也应该显示在标准输出上。
但是,如果我删除 '\n',此代码将不起作用。我希望标准输出应该表现得像一个普通的外壳。
java - 如何将所有控制台输出重定向到具有正确编码的 Swing JTextArea/JTextPane?
我一直在尝试将 System.out PrintStream 重定向到 JTextPane。这工作正常,除了特殊语言环境字符的编码。我找到了很多关于它的文档(参见例如mindprod 编码页面),但我仍在与它作斗争。StackOverFlow 中发布了类似的问题,但就我所见而言,编码并没有得到解决。
第一个解决方案:
第二种解决方案应该使用 java.nio。我不明白如何使用字符集。
两种解决方案都没有奏效。任何想法?
在此先感谢,jgran
perl - 我可以将 STDOUT 和 STDERR 发送到日志文件以及 Win32 Perl 中的屏幕吗?
我搜索了互联网并找到了一些很好的解决方案,可以将 STDOUT 发球到 2 个不同的地方。喜欢日志文件,同时也喜欢屏幕。这是一个例子:
但是这个解决方案让 STDERR 只进入屏幕,我希望 STDERR 进入屏幕以及 STDOUT 被记录到的同一个日志文件。这甚至可能吗?
我的任务是记录我的构建过程,但我也想像往常一样在我的 IDE 屏幕上看到它。记录错误消息与记录快乐消息一样重要。并且将错误记录到单独的日志文件中并不是一个好的解决方案。
process - 从 solaris 中已经运行的进程中捕获 stderr 和 stdout
我有一个由用户“remedy”启动的当前正在运行的进程(arserverd)。我能够以该用户身份登录。我想在不重新启动进程的情况下捕获标准错误和标准输出。这可能吗?
python - 使用 Python 强制另一个程序的标准输出无缓冲
Python 脚本控制 Linux 上的外部应用程序,通过管道将输入传递到外部应用程序标准输入,并通过管道从外部应用程序标准输出读取输出。
问题是对管道的写入是按块而不是按行缓冲的,因此在控制脚本接收数据输出之前会发生延迟,例如外部应用程序中的 printf。
无法更改外部应用程序以添加显式 fflush(0) 调用。
python标准库的pty模块如何配合subprocess模块来实现呢?