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.