"standard output stream"和"standard output device"有什么区别?
What is the difference between "standard output stream" and "standard output device"?
互联网上的许多文章都使用"标准输入/输出/错误流"术语,就好像每个术语与其他文章中使用的"标准输入/输出/错误设备"术语具有相同的含义。例如,许多文章说标准输出流默认是监视器,但可以重定向到文件、打印机或其他设备。
让我们以标准输出为例:
- 标准输出
流和标准输出设备有什么区别?如果有,它们之间有什么关系?
引自 GetStdHandle() 的帮助页面,
"进程的标准句柄可以通过调用 SetStdHandle 来重定向,在这种情况下,GetStdHandle 返回重定向的句柄。
哪一个实际上是重定向的,标准输出流还是标准输出设备?
每个进程都有自己的标准流吗?
输出设备是可以写入数据的某个逻辑实体。
输出流是与输出设备的连接。
在进程中,您有一个标准输出流,该流连接到标准输出设备。这意味着将数据写入标准输出流会将其输出到标准输出设备。当然,您实际上可以在进程开始后更改流绑定到的设备。
要回答您的最后一个问题,答案是肯定的,每个进程都有自己的标准流。这实际映射到哪个设备取决于操作系统以及进程的启动方式。例如,默认情况下,在 Linux 或 Windows 中直接从控制台启动的任何进程都会将其标准输出流链接到该控制台。但是,可以通过使用">"来引用硬件设备或文件,或者通过"管道"来重定向此流,"管道"可用于使一系列程序将其标准输出流重定向到彼此。
例如: echo hi > example.txt
将使用参数"hi"启动程序"echo",并将标准输出流设置为文件"example.txt"。
类似地,每个进程也有一个标准输入流和一个标准错误(输出)流。
相关文章:
- ( [ ]( ){ output;}); 是什么意思?
- 我需要安装什么才能获得在Windows Server 2012 R2 Standard上运行C++hello world
- diff: output.txt: 没有这样的文件或目录
- 从生成文件编译错误:"Unable to open output file" ..."No such file or directory"
- 为什么"non-standard syntax; use '&' to create a pointer to member"在 CTOR 中使用线程?
- 函数参数中的向量"Non-standard syntax"错误
- 什么是"Reading unbounded stream from standard input (Memory Management)"的例子
- C++ standard: ODR and constexpr std::string_view
- 'Cannot output file filename.exe Permission denied' C++ 代码::块中的错误
- UCRTbase.dll涉及TCP通信的C ++ Windows Embedded Standard崩溃
- 如何修复"(Song Title) is not recognized in output screen"
- C++ library output
- 如果它被定义为 C++ 类中的成员函数,我得到了"non-standard syntax; use '&' to create a pointer to member"
- 我需要用c ++ 98重写c ++ 11代码,c ++ 11正在使用lambda函数[&](const Output & o
- gradle see output for model.components.binaries.all
- 我在下面的代码上收到错误"Output Limit Exceeded"
- Output UTF-8 (u8) std::string
- Visual Studio 2015:获取"non standard syntax, use '&' to create a pointer to member"错误
- 在 Eclipse.It 中运行C++代码时出错,'Your program cannot output..'
- "standard output stream"和"standard output device"有什么区别?