#include #include /* Kopiranje datoteke, liniju po liniju. Koristi funkciju za kopiranje. Funkcija javlja greske kod citanja i pisanja i vraca pripadni kod greske (0 = nema greske). */ #define MAX_LINE 129 int copy_file(FILE *in, FILE *out) { char buf[MAX_LINE]; /* Ulazni buffer. */ while (fgets(buf, MAX_LINE, in) != NULL) if (fputs(buf, out) == EOF) { fprintf(stderr, "\nGreska u pisanju.\n"); return 1; /* Necu exit(1); */ } if (ferror(in)) { fprintf(stderr, "\nGreska u citanju.\n"); return 2; /* Necu exit(2); */ } return 0; } /* Glavni program. */ int main(int argc, char *argv[]) { FILE *in, *out; int greska; if (argc != 3) { /* Nema imena datoteka! */ fprintf(stderr, "Uporaba: %s ime1 ime2\n", argv[0]); exit(1); } if ((in = fopen(argv[1], "r")) == NULL) { fprintf(stderr, "Ne mogu citati: %s!\n", argv[1]); exit(2); } if ((out = fopen(argv[2], "w")) == NULL) { fprintf(stderr, "Ne mogu pisati: %s!\n", argv[2]); exit(3); } greska = copy_file(in, out); fclose(in); fclose(out); return 0; }