c++ - 如何在 Windows 控制台中将数据输出到自定义流(3> 4> 等..)?

标签 c++ windows stream console stdout

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

UNDEFINED 3-9 - 这些句柄由应用程序单独定义,并且特定于每个工具。

所以我想要完成的是通过自己的输出流创建(假设在插槽 3 上)并将其用于调试。 (我看到系统没有提供stddbg流。)

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

isatty(fileno(stderr)) == 0

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

myApp.exe param1 param2 2> error.log

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

myApp.exe param1 param2 3> debug.log

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

最佳答案

句柄 3-9 似乎只是用于使用命令行的附加临时句柄,例如用于缓冲某些输入/输出。寻找一些dos shell巫师的答案,例如thisthis ,看看如何使用它。我认为您无法以编程方式定义它。

关于c++ - 如何在 Windows 控制台中将数据输出到自定义流(3> 4> 等..)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23630121/

相关文章:

c++ - 泛型函数每次都必须输入模板吗?

c++ - 如何预先计算值数组?

java - 执行./bin/start-hbase.sh时发生Hbase错误(Windows)

c++ - boost multi_array View

c# - 该系统找不到指定的路径

windows - 使用 Delphi 查找特殊驱动器

c# - 将 StreamWriter 与 BinaryFormatter 结合使用

python - python解析流中的音频

json - 解码大流 JSON

c++ - 如何在 C++ 中以特定大小读取和存储未知类型的数据?