gpt4 book ai didi

c++ - "standard output stream"和 "standard output device"有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 09:48:09 34 4
gpt4 key购买 nike

互联网上的许多文章都使用“标准输入/输出/错误流”术语好像每个术语都与使用的“标准输入/输出/错误设备”术语具有相同的含义在其他文章上。例如,很多文章说标准输出流默认是监视器,但可以重定向到文件、打印机或其他设备。

我们以标准输出为例:

  1. 标准输出流和标准输出设备有什么区别?如果存在,它们之间是什么关系?

    引自GetStdHandle()的帮助页面,

    "The standard handles of a process may be redirected by a call to SetStdHandle, in which case GetStdHandle returns the redirected handle."

  2. 实际上重定向的是标准输出流还是标准输出设备?

  3. 是否每个进程都有自己的标准流?

最佳答案

输出设备是可以写入数据的逻辑实体。

输出流是到输出设备的连接。

在一个进程中,您有一个标准输出流,它连接到您的标准输出设备。这意味着将数据写入标准输出流会将其输出到标准输出设备。当然,您实际上可以在进程启动后更改流绑定(bind)到哪个设备。

回答你最后一个问题,答案是肯定的,每个进程都有自己的标准流。这实际映射到哪个设备取决于操作系统以及进程的启动方式。例如,在 Linux 或 Windows 中直接从控制台启动的任何进程在默认情况下都将其标准输出流链接到该控制台。但是,可以通过使用“>”来引用硬件设备或文件,或通过“管道”来重定向此流,这可用于使一系列程序将其标准输出流重定向到彼此。

例如:echo hi > example.txt 将使用参数“hi”启动程序“echo”并将标准输出流设置为文件“example.txt”。

类似地,每个进程也有一个标准输入流和一个标准错误(输出)流。

关于c++ - "standard output stream"和 "standard output device"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14564675/

34 4 0