русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Перенаправление ввода-вывода


Дата добавления: 2014-11-27; просмотров: 716; Нарушение авторских прав


 

Когда в Unix начинает работать команда или программа, автоматически открываются три направления ввода-вывода:

  • стандартный ввод;
  • стандартный вывод
  • стандартный протокол (стандартное устройство для вывода сообщений об ошибках).

Многие команды берут исходные данные из стандартного ввода и печатают результаты в стандартный вывод.

Первоначально в качестве устройства стандартного ввода используется клавиатура терминала, а стандартный вывод и стандартный протокол назначены на экран терминала.

Стандартный интерпретатор команд (sh) позволяет изменять первоначально установленные направления ввода-вывода.

Для изменения направления вывода используется операция ‘>’ (знак «больше»):

 

команда > имя_файла.

 

Конструкция ‘>>’ позволяет дописать в существующий файл (иначе файл усекается до 0 и запись в него ведется с начала).

 

Для изменения направления ввода следует использовать операцию ‘<’:

 

команда < имя_файла.

 

 

И, наконец, для изменения направления вывода для стандартного протокола применяют конструкцию ‘2>’:

 

команда 2> имя_файла.

Здесь цифра 2 указывает дескриптор файла стандартного протокола.

 

Примечание. Файловая система Unix позволяет унифицировать передачу данных в файлы, на устройства и при обмене данными между процессами. Поэтому выражения «стандартный ввод», устройство стандартного ввода» «файл стандартного ввода» можно считать синонимами.

 

Пример_1: %ls –l > dir1

Результат работы команды ls –l перенаправляется в файл dir1 (в «обычном» режиме результаты выводятся в стандартный вывод – на экран дисплея).

 

Пример_2: %cat file1 file2 > file3

Файлы file1 и file2 “склеиваются” и результат записывается в file3.

 

Пример_3: Создание файла с помощью команды cat.



%cat > newfile

текст

текст

…….

текст

<Ctrl/D>

 

Команда cat, если не указан аргумент (входной файл), вводит данные со стандартного ввода. Введенные данные перенаправляются в файл newfile. Завершается работа команды cat при вводе управляющего кода EOF (End of File – конец файла) – одновременное нажатие клавиш Ctrl и D.

 

Пример_4: %run 2> /dev/null

Запущена команда run. Диагностические сообщения (выводимые в стандартный протокол) перенаправляются на «нулевое» устройство с целью их уничтожения. Специальный файл (устройство) /dev/null представляет собой своего рода «черную дыру», способную поглотить любое количество данных, направляемых на него.

 

Пример_5: %find / -name *r* -print 2> diag

Диагностические сообщения команды find (сообщение о том, что просматриваемые каталоги закрыты для чтения) будут направлены в файл diag, а не на экран дисплея.

Используя цифровые дескрипторы (0, 1, 2, …) открытых потоков данных можно конструировать более сложные перенаправления потоков данных.

 

Пример_6: %run_program > /dev/null 2>&1

Выполняется команда run_program. Стандартный вывод направлен в нулевое устройство (конструкция ‘> /dev/null’). Следующая конструкция ‘2>&1’ является указанием интерпретатору, что стандартный поток диагностики (2>) нужно поместить в тот же поток, что и стандартный выводной (обозначен с помощью дескриптора 1).

Амперсанд (&) не содержит какого-либо мнемонического смысла; это просто идиома (для того чтобы отличить операнд справа от ‘>’ от имени файла.

Для добавления стандартного выводного потока к стандартному потоку диагностики можно использовать конструкцию ‘1>&2’.

 

 



<== предыдущая лекция | следующая лекция ==>
Поиск файлов (команда find) | Конвейеры


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.122 сек.