Переопределение дескрипторов (handle)
Когда программа начинает выполняться, пять дескрипторов (handle), соответствующих стандартным вводу, выводу, выводу сообщений об ошибках, порту и устройству печати, уже назначены. Пользователь может использовать значения этих дескрипторов при вызове функций ввода/вывода нижнего уровня.
Каждый из этих дескрипторов соответствует одному из стандартных потоков, значения этих дескрипторов таковы:
поток | значение дескриптора | ||
stdin | 0
| ||
stdout | 1 | ||
stderr | 2 | ||
stdaux | 3 | ||
stdprn | 4 |
Можно использовать эти дескрипторы файлов в программе без предварительного открытия этих файлов. Они автоматически открываются при запуске программы.
Так же, как с функциями для потоков, Вы можете использовать перенаправление, чтобы переопределить стандартный ввод и вывод.
Функции dup и dup2
позволяют назначать несколько handle для одного файла; эти функции обычно используются, чтобы связать дополнительные дескрипторы с уже используемыми файлами.