diff options
author | fishsoupisgood <github@madingley.org> | 2019-05-27 02:41:51 +0100 |
---|---|---|
committer | fishsoupisgood <github@madingley.org> | 2019-05-27 02:41:51 +0100 |
commit | 333b605b2afd472b823aeda0adf0e8b1ea9843c0 (patch) | |
tree | bc8f581317897e2e53f278f1716b4471fcdccd4f /bincmp.c | |
download | asl-333b605b2afd472b823aeda0adf0e8b1ea9843c0.tar.gz asl-333b605b2afd472b823aeda0adf0e8b1ea9843c0.tar.bz2 asl-333b605b2afd472b823aeda0adf0e8b1ea9843c0.zip |
Diffstat (limited to 'bincmp.c')
-rw-r--r-- | bincmp.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/bincmp.c b/bincmp.c new file mode 100644 index 0000000..1037ec8 --- /dev/null +++ b/bincmp.c @@ -0,0 +1,46 @@ +#include <stdio.h> + +int main(argc,argv) +int argc; +char **argv; +{ + FILE *f1,*f2; + unsigned char c1,c2; + long pos=0; + + if (argc!=3) + { + fprintf(stderr,"calling convention: %s <file1> <file2>\n",argv[0]); + return 1; + } + + f1=fopen(argv[1],"rb"); + if (f1==NULL) + { + perror(argv[1]); return 2; + } + f2=fopen(argv[2],"rb"); + if (f2==NULL) + { + perror(argv[2]); return 2; + } + + while ((!feof(f1))&&(!feof(f2))) + { + fread(&c1,1,1,f1); fread(&c2,1,1,f2); + if (c1!=c2) + { + fprintf(stderr,"compare error at position %d\n",pos); + fclose(f1); fclose(f2); return 3; + } + pos++; + } + + if (feof(f1)!=feof(f2)) + { + fprintf(stderr,"files have different sizes\n"); + fclose(f1); fclose(f2); return 4; + } + + fclose(f1); fclose(f2); return 0; +} |