Google
 
Главная2-й курс3-й курс4-й курс5-й курсСпецкурсыСсылкиКарта(версия для печати)

Перенаправление ввода-вывода средствами командного интерпретатора ОС

Для автоматизации тестирования выполненных заданий практикума рекомендуется использовать тестовые наборы: заранее подготовленные файлы с входными данными. В случае реализации консольных приложений (считывающих данные с клавиатуры и выдающих результат на экран) использование тестовых наборов достигается путём перенаправления ввода и вывода. Так, в командном интерпретаторе command.exe операционной системы MS DOS (или cmd.exe ОС Windows NT) имеются простейшие операторы перенаправления ввода-вывода: «>» — перенаправить вывод в файл, «|» — направить вывод одной программы на вход другой.

Стандартные потоки ввода-вывода для пользовательского процесса. Перенаправление: на вход подан некоторый файл или вывод направлен в некоторый файл. Перенаправление: на вход подан результат работы некоторого другого пользовательского процесса.

Комбинируя операторы перенаправления, можно в итоге получить сложные цепочки потоков ввода-вывода, объединяющие разные процессы и устройства ввода-вывода. Но для выполнения практических заданий для консольных приложений достаточно ограничиться двумя рассмотренными далее случаями.

Чтобы направить содержимое некоторого файла на ввод консольной программы, необходимо распечатать содержимое этого файла с помощью утилиты печати type и перенаправить результат работы type на вход консольной программы. Например, требуется вводить в консольную программу (prog.exe) одни и те же данные с минимальными изменениями. Для этого надо создать текстовый файл (test.txt), в который поместить тестовый набор («Hello world!»).

>copy con test.txt
Hello world!
^Z
>

Далее, надо выполнить следующую команду:

>type test.txt | prog.exe

Если необходимо протестировать взаимодействие двух консольных программ, при котором одна программа готовит текстовые данные для другой, можно использовать оператор «|» (как показано выше). Но в случае, когда требуется вносить изменения в передаваемые данные, можно сохранить прмежуточный результат в файл, откорректировать его и снова направить на вход второй программе. Чтобы направить результат работы некоторой программы (prog.exe) в файл (test.txt), достаточно написать:

>prog.exe > test.txt