簡體   English   中英

全局C ++ I / O對象是等效的還是使用CI / O流?

[英]Are the global C++ I/O objects equivalent or using the C I/O streams?

我正在瀏覽有關C ++ I / O庫的信息的cppreference並且到目前為止都了解它,但是有一件事情:例如,據說std :: cout

與標准C輸出流標准輸出相關聯。

這在技術上意味着什么? 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是專門為編寫操作系統而創建的,因此Process I / O的低級核心很可能是C庫(雖然它也可以是匯編程序或其他語言)。

例如,在POSIX系統上有C庫頭,用於訪問不屬於標准C的低級標准輸入/輸出流 這可能就是為什么它們在鏈接文檔中被稱為C流,但標准io流的概念早於C語言本身。

標准C標准C ++流所做的是在操作系統提供的原始基元上添加抽象層。 這通常是在數字和字符串,字符編碼等之間進行格式化和轉換CC++不同的方式執行這些操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM