Fix integrity checking

This commit is contained in:
lw-everestlinux 2022-12-12 19:30:53 -05:00
parent 974fe1f618
commit 1b94d281a6

View File

@ -1,70 +1,59 @@
//Write a program to compare two file. /* Glacier Integrity Check
* Small program to check file checksums
*/
#include <stdio.h> #include <stdio.h>
#include <string.h> #include<string.h>
int main(int argc, char *argv[]) int main(int argc, char *argv[]) {
{ FILE *fp1;
FILE *fp1 ; FILE *fp2;
FILE *fp2 ;
int cnt1 = 0; int cnt1 = 0;
int cnt2 = 0; int cnt2 = 0;
int flg = 0; int flg = 0;
if( argc < 3 ) if (argc < 3) {
{ printf("not enough arguments\n");
printf("Insufficient Arguments!!!\n"); return -1;
printf("Please use \"program-name file-name1 file-name2\" format.\n"); }
return -1;
}
fp1 = fopen(argv[1],"r"); fp1 = fopen(argv[1],"r");
if( fp1 == NULL ) if (fp1 == NULL) {
{ printf("\n%s cannot open file \n",argv[1]);
printf("\n%s File can not be opened : \n",argv[1]); return -1;
return -1; }
}
// move file pointer to end and get total number of bytes fseek(fp1,0,SEEK_END);
fseek(fp1,0,SEEK_END); cnt1 = ftell(fp1);
cnt1 = ftell(fp1);
fp2 = fopen(argv[2],"r"); fp2 = fopen(argv[2],"r");
if( fp2 == NULL ) if (fp2 == NULL) {
{ printf("\n%s cannot open file \n",argv[2]);
printf("\n%s File can not be opened : \n",argv[2]); return -1;
return -1; }
}
// move file pointer to end and get total number of bytes fseek(fp2,0,SEEK_END);
fseek(fp2,0,SEEK_END); cnt2 = ftell(fp2);
cnt2 = ftell(fp2);
fseek(fp1,0,SEEK_SET); fseek(fp1,0,SEEK_SET);
fseek(fp2,0,SEEK_SET); fseek(fp2,0,SEEK_SET);
// check for the total number of bytes if (cnt1 != cnt2) {
if( cnt1 != cnt2 ){ return 1;
return 1; } else {
} while ( ! feof(fp1)) {
else if (fgetc(fp1) != fgetc(fp2)) {
{ flg = 1;
while( ! feof(fp1) ) break;
{ }
if( fgetc(fp1) != fgetc(fp2) ) }
{ if (flg) return 1;
flg = 1; else return 0;
break; }
}
}
if( flg ) return 1; fclose(fp1);
else return 0; fclose(fp2);
}
fclose(fp1); return 0;
fclose(fp2);
return 0;
} }