Использование потоков не имело бы никаких преимуществ перед прямым программированием устройств, если бы их нельзя было переназначать с одного устройства на другое, а также переназначить ввод/вывод информации устройством в файл. Для этого используются следующие конструкции (в DOS и UNIX).
> | - переназначает стандартный поток вывода другому устройству (или файлу). Если этот файл существует, он очищается, и на его место записывается новая информация. Используется в DOS и UNIX. В UNIX те же действия может осуществлять конструкция 1>. |
>> | - То же самое, но если файл существует, то новая информация записывается в конец этого файла. Используется в DOS и UNIX. Для UNIX также можно использовать конструкцию 1>>. |
C.5.5. Переназначение стандартного потока ошибок (в UNIX).
Обычными средствами DOS не может перенаправить стандартный поток ошибок. В UNIX для этого можно использовать команды 2> и 2>>, соответствующие вышеприведенным для стандартного потока вывода.
Для перенаправления в UNIX стандартного потока ошибок в стандартный поток вывода используется конструкция >$ (по умолчанию в UNIX стандартному потоку ввода присваивается номер 0, стандартному потоку вывода - 1, а стандартному потоку ошибок - 2. Конструкция в UNIX 0 >$ 2 переназначает стандартный поток ввода в стандартный поток ошибок, то есть все символы, введенные в этом сеансе с клавиатуры, тут же отображаются на экране, и их нельзя перенаправить в файл).
|
|
C.5.6. Перенаправление потока ввода.
Переадресация стандартного ввода осуществляется конструкцией < для DOS и UNIX и 0> только для UNIX.
Пример использования переадресации (ввод данных программой по умолчанию производится с клавиатуры, и обработанная ею информация выводится на экран):
program < indata.dat >> outdata.txt
В данном примере входные данные программы program читаются из файла indata.dat и записываются в файл outdata.txt.
В примере:
sort < mylist > prn
данные из файла mylist сортируются стандартной программой MS-DOS sort и результат выводится на принтер.