summaryrefslogtreecommitdiff
path: root/hex.c
diff options
context:
space:
mode:
Diffstat (limited to 'hex.c')
-rw-r--r--hex.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/hex.c b/hex.c
new file mode 100644
index 0000000..1323756
--- /dev/null
+++ b/hex.c
@@ -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);
+ }
+}