Глава 27. Сравнение файлов

Постановка задачи
Идеи реализации
Считывание файлов в переменные целиком
Считывание байта за байтом
Буферизация
Разработка
Готовая программа

Будем считать равными файлы, имеющие одинаковое содержание.

Программа cmp из пакета diffutils получает в командной строке имена двух файлов. Если эти файлы различны (в указанном смысле), программа выдаёт сообщение об этом. При совпадении файлов cmp скромно промолчит. Программа указывает также строку в файлах и символ в этой строке, начиная с которой в двух файлах появились различия.

Мы запрограммируем упрощённую версию cmp (назовём её, естественно, cmp.pl), которая будет сообщать лишь о самом факте различия файлов, не выводя подробности о том, в каком месте в файлах эти различия встретились впервые:

% ./cmp.pl File.txt TheSameFile.txt % ./cmp.pl BerestovChitalochka.txt BerestovPetushki.txt Файлы «BerestovChitalochka.txt» и «BerestovPetushki.txt» различаются

Кроме того, наша программа должна сообщать об ошибках, возникающих из-за её неправильного использования или во время работы с файлами:

% ./cmp.pl BerestovPetushki.txt ./cmp.pl: Требуется ровно два параметра в командной строке % ./cmp.pl BerestovChitalochka.txt NoSuchFile.txt ./cmp.pl: Невозможно открыть «NoSuchFile.txt»: Нет такого файла или каталога

Информатика-54© А. Н. Швец