В Unix-подобных системах стандартные дескрипторы — 0 для stdin, 1 для stdout и 2 для stderr. Это соглашение, а не гарантия, что они всегда открыты.
Какие стандартные файловые дескрипторы есть у каждого процесса?
В Unix-подобных системах стандартные дескрипторы — 0 для stdin, 1 для stdout и 2 для stderr. Это соглашение, а не гарантия, что они всегда открыты.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Unix-подобных системах стандартные дескрипторы — 0 для stdin, 1 для stdout и 2 для stderr. Это соглашение, а не гарантия, что они всегда открыты.
Они могут указывать на терминал, файл, pipe или /dev/null и обычно наследуются от родителя. Shell перенаправляет их перед запуском программы. Процесс вправе закрыть или заменить эти дескрипторы, поэтому наличие интерактивной консоли предполагать нельзя. stdout используют для результата, stderr — для диагностики, чтобы их можно было обрабатывать отдельно.