24 lines
674 B
C
24 lines
674 B
C
#include "stdio.h"
|
|
#include <ctype.h>
|
|
#include "hexdump.h"
|
|
|
|
void hexdump (const char *label, const uint8_t *data, size_t len) {
|
|
if (label)
|
|
printf ("%s (len=%u):\n", label, len);
|
|
|
|
for (size_t i = 0; i < len; i += 16) {
|
|
printf ("%04u ", i); // offset
|
|
for (size_t j = 0; j < 16; j++) {
|
|
if (i + j < len)
|
|
printf ("%02X ", data[i + j]);
|
|
else
|
|
printf (" "); // pad spacing
|
|
}
|
|
printf (" ");
|
|
for (size_t j = 0; j < 16 && i + j < len; j++) {
|
|
uint8_t c = data[i + j];
|
|
printf ("%c", isprint (c) ? c : '.');
|
|
}
|
|
printf ("\n");
|
|
}
|
|
} |