#include <stdio.h> #include <stdlib.h> #include <alloc.h> #ifndef __cplusplus typedef enum { false, true } bool; #endif typedef unsigned char byte; void PrintLine(const byte *line, int linesize, long pos) { int c; printf("%04lX : ", pos); for(c = 0; c < linesize; c++) printf("%02X ", line[c]); printf("- "); for(c = 0; c < linesize; c++) printf("%c", line[c] < 32 ? '.' : line[c]); printf("\n"); } bool ReadFromFile(const char *filename) { byte buffer[17]; long size, total; FILE *file = fopen(filename, "rb"); if(!file) return false; total = 0; while(!feof(file)) { size = fread(buffer, sizeof(byte), sizeof(buffer), file); PrintLine(buffer, size, total); total += size; } fclose(file); return true; } void main(int argc, char *argv[]) { if(argc < 2) { printf("Uso: readfile arquivo.ext.\n"); return; } if(!ReadFromFile(argv[1])) { printf("Erro lendo arquivo %s.\n", argv[1]); return; } }