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.