static void dump(unsigned char *buf, int len) { int i, j, n; int line = 16; char c; n = len / line; if (len % line) { n++; } for (i=0; i<n; i++) { printf("0x%08x: ", int(buf+i*line)); for (j=0; j<line; j++) { if ((i*line+j) < len) { printf("%02x ", buf[i*line+j]); } else { printf(" "); } } printf(" "); for (j=0; j<line && (i*line+j)<len; j++) { if ((i*line+j) < len) { c = buf[i*line+j]; printf("%c", c > ' ' && c < '~' ? c : '.'); } else { printf(" "); } } printf("/n"); } }