На этом шаге мы приведем сведения об особенности спользования файловых дескрипторов.
Некоторые реализации позволяют присоединить поток данных к ранее открытому каналу ввода-вывода. Для этого файловый поток данных инициализируется файловым дескриптором.
Файловый дескриптор представляет собой целое число, идентифицирующее открытый канал ввода-вывода. В системах семейства UNIX файловые дескрипторы используются в низкоуровневом интерфейсе с функциями ввода-вывода операционной системы. Определены три стандартных файловых дескриптора:
Каналы могут связываться с файлами, консолью, процессами или другими средствами ввода-вывода.
К сожалению, стандартная библиотека C++ не поддерживает присоединение потоков данных к каналам ввода-вывода при помощи файловых дескрипторов. Это объясняется тем, что проектировщики стремились обеспечить независимость от конкретных особенностей операционных систем. Впрочем, на практике такая возможность существует, а ее единственный недостаток - влияние на переносимость программ. На сегодняшний день в стандартах интерфейсов операционных систем (таких, как POSIX или X/OPEN) не существует такой спецификации, причем ее разработка даже не планируется.
И все же поток данных можно инициализировать по файловому дескриптору.
Со следующего шага мы начнем рассматривать связывание потоков вода-вывода.