diff options
Diffstat (limited to 'hex.c')
-rw-r--r-- | hex.c | 62 |
1 files changed, 62 insertions, 0 deletions
@@ -0,0 +1,62 @@ +#include <stdlib.h> +#include <stdio.h> +#include <ctype.h> + +int main(int argc,char *argv[]) + +{ + void Dump(char *fn,FILE *fp); + FILE *fp; + int f; + + if (argc==1) + Dump("stdin",stdin); + else + for(f=1;f<argc;f++) + if ((fp=fopen(argv[f],"r"))) + { + Dump(argv[f],fp); + fclose(fp); + } + else + fprintf(stderr,"Couldn't open %s\n",argv[f]); +} + + +void Dump(char *fn,FILE *fp) +{ + char s[17]; + int p; + int f; + int b; + + printf("File:%s\n",fn); + + b=!EOF; + p=0; + + while(b!=EOF) + { + strcpy(s," "); + + printf("%6.6x: ",p); + p+=16; + + for(f=0;f<16;f++) + { + if((b!=EOF)&&((b=getc(fp))!=EOF)) + { + printf("%2.2x ",(unsigned char)b); + + if (isprint(b)) + s[f]=b; + else + s[f]='.'; + } + else + printf("** "); + } + + printf(" %s\n",s); + } +} |