#include <stdio.h>
#include <io.h>
#include <alloc.h>
#include <string.h>
#ifndef __cplusplus
typedef enum { false, true } bool;
#endif
bool FileCompare(const char *FileName1, const char *FileName2)
{
FILE *fpFile1, *fpFile2;
char *str1, *str2;
bool result;
fpFile1 = fopen(FileName1, "rt");
if(!fpFile1)
return false;
fpFile2 = fopen(FileName2, "rt");
if(!fpFile2)
{
fclose(fpFile1);
return false;
}
if(filelength(fileno(fpFile1)) != filelength(fileno(fpFile2)))
{
fclose(fpFile1);
fclose(fpFile2);
return false;
}
str1 = (char *)malloc(sizeof(char) * 1024);
str2 = (char *)malloc(sizeof(char) * 1024);
result = true;
while(fgets(str1, 1024, fpFile1) && fgets(str2, 1024, fpFile2))
if(strcmp(str1, str2))
{
result = false;
break;
}
fclose(fpFile1);
fclose(fpFile2);
free(str1);
free(str2);
return result;
}
void main(int ArgC, char *ArgV[])
{
puts("Comparador de arquivos. by Wenderson Teixeira");
if(ArgC < 3)
{
puts("Uso: filecomp arquivo1.ext arquivo2.ext");
return;
}
if(FileCompare(ArgV[1], ArgV[2]))
puts("Arquivos são iguais.");
else
puts("Arquivos são diferentes.");
}