La diferencia entre stdout y STDOUT_FILENO en LINUX C

Me preguntaba la diferencia entrestdout ySTDOUT_FILENO en Linux C.

Después de algunos trabajos de búsqueda, saco la siguiente conclusión. ¿Podrías ayudarme a revisarlo y corregir algún error en él? Gracias

stdout pertenece al flujo de E / S estándar del lenguaje C; cuyo tipo es FILE * y definido en stdio.h

STDOUT_FILENO, poseyendo un tipo int, se define enunistd.h. Es un descriptor de archivos del sistema LINUX. Enunistd.h, se explica a continuación:

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.

Así que, en mi opinión, laSTDOUT_FILENO pertenece a las llamadas a nivel del sistema y, en cierta medida, como una API del sistema.STDOUT_FILENO Puede ser utilizado para describir cualquier dispositivo en el sistema.

losstdout localiza en un nivel más alto (¿nivel de usuario?) y en realidad encapsula los detalles deSTDOUT_FILENO. stdout tiene búfer de E / S.

Esa es mi comprensión de su diferencia. Cualquier comentario o corrección se agradece, gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta