Мне было интересно узнать разницу между stdout и STDOUT_FILENO в Linux C.
После некоторой поисковой работы я делаю следующий вывод. Не могли бы вы помочь мне просмотреть его и исправить любую ошибку? Благодаря
-
stdoutотносится к стандартным потокам ввода-вывода языка C; тип которого FILE * и определен в stdio.h -
STDOUT_FILENO, обладающий типом int, определяется вunistd.h. Это файловый дескриптор системы LINUX. Вunistd.hон объясняется следующим образом:
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.
Итак, на мой взгляд, STDOUT_FILENO принадлежит системному вызову и, в некоторой степени, как системный API. STDOUT_FILENO может использоваться для описания любого устройства в системе.
stdout находится на более высоком уровне (пользовательский уровень?) и фактически инкапсулирует детали STDOUT_FILENO. stdout имеет буфер ввода/вывода.
Что я понимаю об их различии. Любые комментарии или исправления приветствуются, спасибо.