Дескриптор — номер открытого ресурса в таблице процесса. По соглашению 0 — стандартный ввод, 1 — стандартный вывод, 2 — стандартный поток ошибок.
Что такое файловые дескрипторы и какие стандартные дескрипторы 0, 1, 2 ты знаешь?
Дескриптор — номер открытого ресурса в таблице процесса. По соглашению 0 — стандартный ввод, 1 — стандартный вывод, 2 — стандартный поток ошибок.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Дескриптор — номер открытого ресурса в таблице процесса. По соглашению 0 — стандартный ввод, 1 — стандартный вывод, 2 — стандартный поток ошибок.
Они не обязаны быть терминалом: shell может подключить файл или pipe. Например, перенаправление stdout не обязано перенаправлять stderr, поэтому диагностические сообщения часто видны отдельно.
Сокеты, обычные файлы и каналы тоже представлены дескрипторами. Номер не описывает тип ресурса и после close может быть выдан повторно. При реализации перенаправления применяют dup2/dup3 и аккуратно закрывают лишние дескрипторы, чтобы не удерживать канал открытым.