Sobes.tech
Middle

O std::cout escreve os dados diretamente no descritor de ficheiro?

sobes.tech IA

Resposta da IA

std::cout não escreve dados imediatamente no descritor de ficheiro. Ele usa bufferização para melhorar o desempenho.

Os dados são primeiro colocados no buffer, e só quando o buffer está cheio, ou ao chamar std::flush, std::endl ou ao terminar o programa, os dados são enviados ao descritor de ficheiro (normalmente a saída padrão — stdout).

Exemplo:

#include <iostream>

int main() {
    std::cout << "Hello, world!"; // dados no buffer
    std::cout.flush(); // envia forçosamente os dados ao descritor de ficheiro
    return 0;
}

Assim, a bufferização permite reduzir o número de chamadas ao sistema para escrita, o que melhora o desempenho.