squalyl (./129) :
attends mais totalement 
vas y pour comparer des fichiers un peu gros!
(</hs>)
Tout dépend l'implémentation de read()

Je suis un jours tombé sur un OS embedded qui en fait lisait la valeur hash incluse dans le FS (ou la générait le cas échéant) ainsi que le mapping VF (virtual file). Du coup si ensuite tu faisais un compare() (ou =

et bien il comparait les hash ! Radical...
En cas de non conformance des hash, avec le mapping ouvert, il comparait par chunk (je crois me rappeler de 128 KiB) qui eux mêmes disposaient de hash. La comparaison se faisait en parallèle sur des fichiers qui pouvaient êtres énormes avec une rapidité stupéfiante (extra pour les diffs) sans compter que le FS intégrait la notion de secteur non plein (tu peux avoir une césure binaire n'importe où dans le fichier, ça reprend au prochain secteur) Par contre c'est sûr que dans ces cas là, ça peut être consommateur d'espace disque :/
Kochise