codice:
#define DIM_TXT 99	 // Dimensione Array per il Testo
#define DIM_CHK 99	// Dimensione Array Check Controllo Valori (per Copia)

// C o p y
int copy (char*file, char*newfile) {
   char buffer[DIM_TXT];			  // Buffer di Lettura File
   char txtfile[DIM_TXT];		     // Buffer di Lettura Vecchio File
   char txtnewfile[DIM_TXT];	    // Buffer di Lettura Nuovo File
   int check[DIM_CHK];			   // Valori di Controllo 1 Uguale - 0 Diverso
   int i,count;					  // Count = Conta N volte i check...
   int byte = sizeof(char);	 // Dimensione in Byte di un Elemento dell'Array
   int errors;						// Errori Nella Copia del File 0 No - 1 Si
	FILE *fp,*fpn;            // Puntatori ai File

	fp = fopen(file, "rb");
	if (fp == NULL) {
		// FILE Inesistente
      printf(ERROR_FI);
   	printf("\n");
	} else {
		// Apri il nuovo file e copia...
		fpn = fopen(newfile, "r");
		if (fpn != NULL) {
      	fclose(fpn);	// Chiudi L'apertura in 'r'
         
			// File GIà esistente
         printf("\n");
      	printf(ADVER_FE);
   		printf("\n");
		} else {
			fpn = fopen(newfile, "ab+");

			while (!feof(fp)) {
         	// Leggi dal file e metti nel file Nuovo...
            fread(&buffer, byte, DIM_TXT, fp);
      		fwrite(buffer, byte, DIM_TXT, fpn);
			}

			// Confronta i due file...e da return(errors)...
         rewind (fp);
         rewind (fpn);
         count = 0;
         while (!feof(fp)) {
				fread(&txtfile, byte, DIM_TXT, fp);
            fread(&txtnewfile, byte, DIM_TXT, fpn);

            if (!strcmp(txtfile, txtnewfile)) {
            	check[count] = 1;
               printf("1");
            } else {
               check[count] = 0;
               printf("0");
            }

            count++;
         }

         fclose(fp);
         fclose(fpn);

         for (i=0; i<count; i++) {
            if (check[i] == 0) {
            	errors = 1;
            	break;
            } else {
            	errors = 0;
            }
         }
		} // Fine Secondo Else (fpn == NULL)
	} // Fine Primo Else (fp != NULL)

   return (errors);
}