首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数据输出到自定义流(3>、4>等)在windows控制台里?

如何将数据输出到自定义流(3>、4>等)在windows控制台里?
EN

Stack Overflow用户
提问于 2014-05-13 11:33:46
回答 2查看 412关注 0票数 1

在文档中,除了标准的stdin、stdout和stderr之外,还有关于其他流的信息。( http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true )

UNDEFINED 3-9 - These handles are defined individually by the application and are specific to each tool.

因此,我想要完成的是通过自己的输出流来创建,比如说在插槽3上,并将其用于调试。(我看到系统没有提供stddbg流。)

因此,我的问题是-是否可以检查非标准输出流是否正在等待数据,就像我对stderr所做的那样:

代码语言:javascript
复制
isatty(fileno(stderr)) == 0

然后,我可以选择一种不同的错误信息格式,更友好地记录文件。当以这种方式使用命令时,上面的代码是正确的:

代码语言:javascript
复制
myApp.exe param1 param2 2> error.log

但是,当我需要区分调试(或性能)和错误消息时,很容易使用另一个流,如:

代码语言:javascript
复制
myApp.exe param1 param2 3> debug.log

但是如何检查这个流是否连接到应用程序,我应该使用什么名称作为fileno()函数的参数?

EN

回答 2

Stack Overflow用户

发布于 2014-05-13 14:44:44

句柄3-9似乎只是用于处理命令行的附加临时句柄,例如用于缓冲某些输入/输出。寻找一些dos shell巫师的答案,例如thisthis,看看如何使用它。我不认为你能用程序来定义它。

票数 1
EN

Stack Overflow用户

发布于 2014-05-14 00:02:29

遗憾的是,自定义流只存在于cmd.exe的特定实例中,不传递给子进程。(即使是子cmd.exe进程也不会从父进程继承自定义流。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23630121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档