Боюсь, вы не сможете избежать полного чтения обоих файлов, чтобы быть полностью уверенными, что они равны.
Вы можете сначала проверить размер обоих файлов; если они разные, файлы разные (но как насчет текстовых файлов, которые будут отличаться только в разделителе строк?).
Если размер одинаковый, я не вижу правильного пути, но начинаю читать оба файла. Конечно, он может остановиться, как только буфер станет другим, но он может только указать, что файлы равны действительно , когда последний символ обрабатывается.