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); }