/*********************************************************/ /* program 26: hexadecimal dump */ /*********************************************************/ #include "sys/file.h" main (argc,argv) long argc; char **argv; { long fp; long addr,cnt,m,n; unsigned char buf[20]; unsigned char *b; if (argc < 2) { printf ("Usage: dumpit \n"); } else { printf("Dump file: %s\n",argv[1]); fp = open(argv[1],O_RDONLY); if (fp <= 0) { printf("Cannot open file %s\n",argv[1]); } else { addr = 0; cnt = 1; while (cnt > 0) { cnt = read(fp,buf,16); b = buf; printf ("%5d (%08lx) ",addr,addr); addr = addr + 16; for (m = 0; m < 4; m++) { for (n = 0; n < 4; n++) { printf ("%02x",*b++); } printf (" "); } printf(" "); for (n = 0; n < 16; n++) { if ((buf[n] < 32) || (buf[n] > 126)) printf("%c",'.'); else printf("%c",buf[n]); } printf("\n"); } close(fp); printf ("End of dump\n"); } } }