ОПЕРАЦИОННАЯ СИСТЕМА UNIX.
ОПЕРАЦИОННАЯ СИСТЕМА UNIX.
Переключение вывода
Предположим, вы осуществили компиляцию программы ввод-вывод4 и поместили выполняемый объектный код в файл с именем getput4. Затем, чтобы запустить данную программу, вы вводите с терминала только имя файла
getput4
и программа выполняется так, как было описано выше, т. е. получает в качестве входных данных символы, вводимые с клавиатуры. Теперь предположим, что вы хотите посмотреть, как наша программа работает с "текстовым файлом" с именем words. (Текстовый файл - это файл, содержащий некоторый текст, т е. данные в виде символов. Это может быть, например, очерк или программа на языке Си. Файл, содержащий команды на машинном языке, например файл, полученный в результате компиляции данной программы, не является текстовым. Поскольку наша программа занимается обработкой символов, она должна использоваться вместе с текстовыми файлами.) Все, что для этого требуется - ввести вместо команды, указанной выше, следующую:
getput4 < words
Символ < служит обозначением операции переключения, используемой в ОС UNIX. Выполнение указанной операции приводит к тому, что содержимое файла words будет направлено в файл с именем getput4. Сама программа ввод-вывод4 не знает (и не должна знать), что входные данные поступают из некоторого файла, а не с терминала; на ее вход просто поступает поток символов, она читает их и последовательно по одному выводит на печать до тех пор, пока не встретит признак EOF. В операционной системе UNIX файлы и устройства ввода-вывода в логическом смысле представляют собой одно и то же, поэтому теперь файл для данной программы является "устройством" ввода-вывода. Если вы попробуете ввести команду
getput4 < words
то в результате на экране могут появиться, например, следующие строки:
В одном мгновеньи видеть вечность,
Огромный мир - в зерне песка,
В единой горсти - бесконечность,
И небо - в чашечке цветка.