/* copy.c - kopiranje datoteke koriscenjem getc i putc funkcija */ #include #include #include #include main(int argc,char *argv[]) { /* Pokazivaci na ulaznu odnosno izlaznu datoteku */ FILE *in,*out; int c; long n; /* Promenljive koje ce cuvati pocetni i zavrsni otkucaj clocka */ clock_t start, end; /* Ispitivanja ulaznih podataka */ if( argc < 3 ) { printf(" Koriscenje: copy ulazna-dat izlazna-dat \n"); exit(1); } /* Otvara se ulazna datoteka za citanje */ in = fopen(argv[1],"r"); /* Otvara se izlazna datoteka za upisivanje */ out = fopen(argv[2],"w"); /* Provera da li su datoteke uspesno otvorene? */ if( (in == NULL) || (out == NULL) ) { fprintf( stderr, "Ne moze da se otvori datoteka \n"); exit(0); } n = 0L; /* Startni otkucaj sata */ start = clock(); /* Ceka se 2000 milisekundi */ delay(2000); /* Uzima se prvi karakter */ c = getc(in); while( c != EOF ) { n++; /* Ucitani karakter se upisuje u izlaznu datoteku */ putc(c,out); /* Uzima se sledeci karakter */ c = getc(in); } /* Zavrsni otkucaj sata */ end = clock(); /* Zatvaraju se otvorene datoteke */ fclose(in); fclose(out); printf(" %ld kopiranih karaktera\n", n ); printf(" potrebno vreme:\t %ld clocks\n", end - start); printf(" potrebno vreme:\t %4.2f sec\n", (float)(end - start)/CLK_TCK); return 0; }