Что такое файловые дескрипторы?

У каждого процесса в Linux есть три стандартных канала:
FD Назначение
0 stdin (ввод)
1 stdout (вывод)
2 stderr (ошибки)

Но процесс может иметь дополнительные дескрипторы:
3, 4, 5 … — хоть до сотен.

Это такие же каналы ввода-вывода, как и 0–2, только вы сами решаете, куда они ведут.

📌Зачем нужны дополнительные FD?

Обычное перенаправление < file может быть применено только один раз, то есть вы не можете «последовательно читать два файла» в одном цикле:

while read line; do …; done < file1 < file2 # так не работает

Более того, невозможно одновременно читать из одного файла и писать в другой ― в рамках одного while read.

Файловые дескрипторы это исправляет.
Просмотры: 6
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти