Aula 18Copia um ficheiro para outro, semelhante ao comando
   cpOs 2 ficheiros são diferentes?

Os 2 ficheiros são diferentes?

#include <stdio.h>

//-- retorna 1 se ficheiros diferentes, 0 se iguais
int diferem(FILE *f,FILE *g){
  int c1,c2;
  c1=fgetc(f);
  c2=fgetc(g);

  while(c1!=EOF || c2!=EOF){
    if(c1!=c2)
      return 1;
    c1=fgetc(f);
    c2=fgetc(g);
  }
  return c1!=c2;
}

//--------------------------------------------
void erro(char m[]){
  printf("** %s\n",m);
  exit(0);
}

//--------------------------------------------
int main(int np, char *par[]){
  FILE *ficha, *fichb;
  
  if(np!=3)
    erro("Numero de parametros errado");
  
  if((ficha=fopen(par[1],"r"))==NULL || 
     (fichb=fopen(par[2],"r"))==NULL)
    erro("Erro de ficheiros");
  
  if(diferem(ficha,fichb))
    printf("%s e %s são diferentes\n",par[1],par[2]);
  else
    printf("%s e %s são iguais\n",par[1],par[2]);
  return 0;
}

PC/PI - página reservada - versão 2005.02.08

Aula 18Copia um ficheiro para outro, semelhante ao comando
   cpOs 2 ficheiros são diferentes?