, , . , . , , ftp://mirrors.kernel.org/gnu/diffutils/diffutils-3.0.tar.gz .
, src/analysis.c. diff_2_files 472. , , 512 - 537. :
for (;; cmp->file[0].buffered = cmp->file[1].buffered = 0)
{
for (f = 0; f < 2; f++)
if (0 <= cmp->file[f].desc)
file_block_read (&cmp->file[f],
buffer_size - cmp->file[f].buffered);
if (cmp->file[0].buffered != cmp->file[1].buffered
|| memcmp (cmp->file[0].buffer,
cmp->file[1].buffer,
cmp->file[0].buffered))
{
changes = 1;
break;
}
if (cmp->file[0].buffered != buffer_size)
{
changes = 0;
break;
}
}
, . , memcmp, , - . - , . , , , .