Hexダンプ
Hexダンプライブラリ
指定された領域の指定された長さ分のデータを
Hexダンプする。合わせASCII表示も行う。
出力先は標準出力
//----------------------------------------- void yydump(char *p, int length) { int address = (int)p; char data[17]; int i; char buf[128]; char tmp[32]; data[16] = 0; /* for string terminator */ printf("Start Addr:[%p] Length:[%d]\n", p, length); for(;length>0;){ sprintf(buf, "%08X :", address); for(i=0;i<16;i++){ data[i] = *p++; length--; /* data is out of range */ if(length < 0){ sprintf(tmp, " "); strcat(buf, tmp); data[i] = ' '; } else{ sprintf(tmp, "%02X", (unsigned char)data[i]); strcat(buf, tmp); /* eliminate undisplayable character */ if((data[i] < 0x20) || (0x7E < data[i])){ data[i] = '.'; } } } sprintf(tmp, " : %s\n", data); strcat(buf, tmp); address += 16; printf("%s",buf); } printf("\n"); }