Untitled


SUBMITTED BY: Guest

DATE: March 3, 2014, 12:03 p.m.

FORMAT: C++

SIZE: 977 Bytes

HITS: 1056

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define ALIGN(x,y) ( (((x)%(y))==0) ? (x) : ((x)+((y)-((x)%(y)))) )
  5. int main(int argc, char **argv){
  6. if (argc<2){
  7. puts("usage: xview <file>");
  8. return 1;
  9. }
  10. FILE *fp = fopen(argv[1],"rb");
  11. fseek(fp,0,SEEK_END);
  12. size_t filesize = ftell(fp);
  13. fseek(fp,0,SEEK_SET);
  14. unsigned char *data = malloc(filesize);
  15. fread(data,filesize,1,fp);
  16. unsigned int i;
  17. for (i=0;i<ALIGN(filesize,16)+1;i++){
  18. if (i%16==0){
  19. if (i!=0){
  20. printf(" | ");
  21. int backset = 16;
  22. while(backset-- && ((i-backset)<filesize+1)){
  23. if (data[i-backset-1]>' ' && data[i-backset-1]<'~') putchar(data[i-backset-1]);
  24. else putchar('.');
  25. }
  26. }
  27. putchar('\n');
  28. }
  29. if (i%8==0) putchar(' ');
  30. if (i>filesize-1){
  31. printf(" ");
  32. }else{
  33. printf("%.2X ",data[i]);
  34. }
  35. }
  36. return 0;
  37. }

comments powered by Disqus