/* test all offsets and lengths */ staticvoid test_one(char *s1, char *s2, unsignedlong max_offset, unsignedlong size_start, unsignedlong max_size)
{ unsignedlong offset, size;
for (offset = 0; offset < max_offset; offset++) { for (size = size_start; size < (max_size - offset); size++) { int x, y; unsignedlong i;
y = memcmp(s1+offset, s2+offset, size);
x = test_memcmp(s1+offset, s2+offset, size);
if (((x ^ y) < 0) && /* Trick to compare sign */
((x | y) != 0)) { /* check for zero */
printf("memcmp returned %d, should have returned %d (offset %ld size %ld)\n", x, y, offset, size);
for (i = offset; i < offset+size; i++)
printf("%02x ", s1[i]);
printf("\n");
for (i = offset; i < offset+size; i++)
printf("%02x ", s2[i]);
printf("\n");
abort();
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.