|
#include <stdio.h>
#include <ctype.h>
void dump(FILE *in)
{
char buf[16]; int i, c, n = 0;
if (!in) return;
do {
printf("%.8X:", 16 * n++);
for (i = 0; i < 16 && (c = fgetc(in)) != EOF; i++)
printf("%3.2X", c), buf[i] = isprint(c) ? c : '.';
printf("%*s %.*s\n", (16 - i) * 3, "", i, buf);
} while (c != EOF);
}
int main(int argc, char **argv)
{
if (argv[1]) dump(fopen(argv[1], "rb"));
return 0;
}
|