gpt4 book ai didi

c++ - 全局 C++ I/O 对象是等效的还是使用 C I/O 流?

转载 作者:太空狗 更新时间:2023-10-29 21:33:48 25 4
gpt4 key购买 nike

我正在浏览 cppreference 以了解有关 C++ I/O 库的信息,到目前为止我都了解它,但有一件事:例如,据说 std::cout

associated with the standard C output stream stdout.

这在技术上意味着什么? std::cout 实际上是在使用 stdout 还是仅仅意味着 std::cout 在功能上等同于 stdout?

如果全局对象使用 C 流 - 为什么它们会使用 C 流而不是 C++ I/O 库提供的流?

最佳答案

当您说“C”流时,这些实际上是操作系统传递给每个进程标准流

创建进程时,操作系统会创建几个低级“文件描述符”,以启用输入输出

这些底层标准输入/输出流是如何实现的,以及使用哪种语言取决于操作系统。自从 C 以来,它们就存在于操作系统中语言是书面的。

显然,“C”提供了通过 <stdio.h> 访问那些内容的权限和 C++通过 <iostream> 提供对它们的访问.

我想说 C++库使用“C”流可能有点误导。如果我们谈论的是标准 C 库,那么 C++ 不太可能将利用它们(但需要与它们合作)。

底层标准输入/输出流不是标准C的一部分,但它们确实与C 有着悠久的历史。语言因为C专为编写操作系统而创建,因此进程 I/O 的低级核心可能是 C库(尽管它也可以是汇编程序或完全是另一种语言)。

例如 POSIX系统有C用于访问不属于标准 C 的低级标准输入/输出流 的库 header 。这也许就是为什么它们被称为 C 的原因链接文档中的流,但是标准 io 流的概念早于 C语言本身。

标准 C标准 C++ 流所做的是在操作系统提供的原始基元上添加抽象层。这通常是在数字和字符串、字符编码等之间进行格式化和转换。CC++以不同的方式做这些事情。

关于c++ - 全局 C++ I/O 对象是等效的还是使用 C I/O 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49960640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com