A diferença entre stdout e STDOUT_FILENO no LINUX C

Eu queria saber a diferença entrestdout eSTDOUT_FILENO no Linux C.

Depois de algum trabalho de pesquisa, chego à seguinte conclusão. Você poderia me ajudar a revisá-lo e corrigir qualquer erro nele? obrigado

stdout pertence ao fluxo de E / S padrão da linguagem C; cujo tipo é FILE * e definido em stdio.h

STDOUT_FILENO, possuindo um tipo int, é definido emunistd.h. É um descritor de arquivos do sistema LINUX. Emunistd.h, é explicado como abaixo:

The following symbolic constants shall be defined for file streams:

STDERR_FILENO
    File number of stderr; 2.
STDIN_FILENO
    File number of stdin; 0.
STDOUT_FILENO
    File number of stdout; 1.

Então, na minha opinião, oSTDOUT_FILENO pertence a chamadas no nível do sistema e, até certo ponto, como uma API do sistema.STDOUT_FILENO pode ser usado para descrever qualquer dispositivo no sistema.

ostdout localiza em um nível mais alto (nível de usuário?) e realmente encapsula os detalhes deSTDOUT_FILENO. stdout tem buffer de E / S.

Essa é a minha compreensão sobre a diferença deles. Qualquer comentário ou correção é apreciado, obrigado.

questionAnswers(1)

yourAnswerToTheQuestion