hexdmp
Borland C++ Compiler 5.5
hexdmp.c
/* 0 1 2 3 4 5 6 7 01234567890123456789012345678901234567890123456789012345678901234567890123456789 HHHHHHHH HH HH HH HH HH HH HH HH-HH HH HH HH HH HH HH HH |XXXXXXXXXXXXXXXX| */ #include
#include
#include
typedef unsigned char u_char; int main(int argc, char **argv) { FILE *pfile; u_char aucBuf[16]; u_char uc; char acLine[80]; char acTmp[8+1]; int iCount; int iRead; int i; if (argc != 2) { fprintf(stderr, "Usage: hexdmp file-in\n"); return 1; } pfile = fopen(argv[1], "rb"); if (pfile == NULL) { fprintf(stderr, "Error: fopen\n"); return 1; } for (iCount = 0; ; iCount += 16) { iRead = fread(aucBuf, 1, 16, pfile); if (iRead <= 0) { break; } memset(acLine, ' ', 75); acLine[32] = '-'; acLine[57] = '|'; acLine[74] = '|'; sprintf(acTmp, "%.8X", iCount); memcpy(acLine, acTmp, 8); for (i = 0; i < iRead; i++) { uc = aucBuf[i]; sprintf(acTmp, "%.2X", uc); memcpy(acLine + 9 + 3 * i, acTmp, 2); acLine[58 + i] = isprint(uc) ? uc : '¥'; } acLine[75] = '\0'; printf("%s\n", acLine); } fclose(pfile); return 0; }