Стандартные файлы ввода и вывода
Стандартные файлы ввода/вывода.
При запуске программы каждой программе ОС сопоставляет 3 стандартных файла ввода/вывода:
№ 0 – стандартный файл ввода; по умолчанию ОС запускает программу, сопоставляя стандартный файл ввода к клавиатуре пользовательского терминала. В ОС Unix программы не имеют прямого доступа к устройствам. Все устройства доступны программам не напрямую, а через файловые объекты, соответствующие устройствам.
№ 1 – стандартный файл вывода сообщений программ. По умолчанию – связан с монитором. В этот файл программа записывает любую информацию, которую нужно отобразить на экране.
№ 2 – стандартный файл вывода сообщений об ошибках. По умолчанию – соответствует монитору. Предполагается, что в этот файл программа не выводит никаких сообщений, кроме сообщений об ошибках. Ос тоже может вывести в этот файл информацию об ошибках, произошедших при работе над программой.
В реальной работе стандартные файлы ввода/вывода не всегда соответствуют устройствам по умолчанию. В момент запуска программы стандартные файлы могут быть переназначены. Это придает гибкость работе программы.
По умолчанию стандартные файлы ввода программ соответствуют вводу с клавиатуры, а стандартные файлы вывода и стандартные файлы ввода сообщений об ошибках соответствуют выводу информации на экран, но так не всегда назначаются файлы ввода-вывода. Тот кто запускает новый процесс может указать ОС использовать в качестве любого из этих трех файлов, любой другой файл ОС. Такие действия называются переназначением ввода-вывода.
Prog1_i_prog2 – вызывает выполнение программы prog1 с перехватом содержимого и ее стандартного файла вывода и отправка этого содержимого в стандартный файл ввода программы prog2, i – служебный файл переназначения ввода-вывода.
prog_<_textfile.txt – вызывет выполнение пограммы с именем prog, но в качестве стандартного файла ввода для нее будет использоваться не клавиатура, а файл с именем textfile.txt.
Рекомендуемые материалы
prog_>_textfile.txt – запустить prog перехватив ее стандартный файл вывода и всю информацию, выводумую программной в стандартный файл вывода перенаправитв в файл с именем textfile.txt, перезаписав его с нуля.
prog_»_textfile.txt – запустить программу prog. Все что она выводит в свой стандартный файл вывода перехватить и направить в файл с именем textfile.txt дописав новую информацию к прежнему содержимому.
Команда переназначения стандартных файлов ввода и вывода можно компилировать в одной командной строке.
Пример: sort<_unsorted.txt_»_sorted.txt – вызов команды сортировки, вход - unsorted.txt, выход – дописав файл с именем sorted.txt
Is_’pwd’ – (‘ – стандартная одиночная кавычка)вызвать команду Is в качестве параметра командной строки подставим результат работы команды pwd.
Обратные одиночные кавычки обозначают подстановку не содержимого файла, а результат выполнения программы.
Программы, рассчитаны на обработку содержимого стандартных файлов ввода и вывода.
Память компьютера - лекция, которая пользуется популярностью у тех, кто читал эту лекцию.
Tr – трансляция из одного набора символов в другой. Наборы символов задаются в командной строке, там же указывается операция, которую нужно провести над потоком символов из стандартного файла ввода. Результат операции помещается программной в стандартный файл ввода.
Возможные операции – трансляция набора символов, удаление набора символов, замена нескольких вхождений одного и того же символа подряд на одно.
Программа tr рассматривает содержимое стандартного файла вврда не как набор строк, а как поток символов.
Sed - строковый редактор. Рассматривает файл как последовательность строк обабатывая их в соответствии с командами из своей командной строки.
Awk - рассматривает входной файл как последовательность строк. Обладает собственным языком программирования с развитым набором команд для построчной пословной и посимвольной обработки текста.
В Unix - «Все, что угодно – это файл»