Перенаправление ввода-вывода средствами командного интерпретатора ОС
Для автоматизации тестирования выполненных заданий практикума рекомендуется использовать тестовые наборы: заранее подготовленные файлы с входными данными.
В случае реализации консольных приложений (считывающих данные с клавиатуры и выдающих результат на экран) использование тестовых наборов достигается путём перенаправления ввода и вывода.
Так, в командном интерпретаторе
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