Commit | Line | Data |
---|---|---|
808bd6eb N |
1 | #include "uucp.h" |
2 | ||
3 | /*** | |
4 | * xcp(f1, f2) copy f1 to f2 | |
5 | * char *f1, *f2; | |
6 | * | |
7 | * return - 0 ok | FAIL failed | |
8 | */ | |
9 | ||
10 | xcp(f1, f2) | |
11 | char *f1, *f2; | |
12 | { | |
13 | char buf[BUFSIZ]; | |
14 | int len; | |
15 | FILE *fp1, *fp2; | |
16 | ||
17 | if ((fp1 = fopen(f1, "r")) == NULL) | |
18 | return(FAIL); | |
19 | if ((fp2 = fopen(f2, "w")) == NULL) { | |
20 | fclose(fp1); | |
21 | return(FAIL); | |
22 | } | |
23 | while((len = fread(buf, sizeof (char), BUFSIZ, fp1)) > 0) | |
24 | fwrite(buf, sizeof (char), len, fp2); | |
25 | fclose(fp1); | |
26 | fclose(fp2); | |
27 | chmod(f2, 0666); | |
28 | return(0); | |
29 | } | |
30 | ||
31 | ||
32 | /* | |
33 | * xmv(f1, f2) move f1 to f2 | |
34 | * char * f1, *f2; | |
35 | * | |
36 | * return 0 ok | FAIL failed | |
37 | */ | |
38 | ||
39 | xmv(f1, f2) | |
40 | char *f1, *f2; | |
41 | { | |
42 | int ret; | |
43 | ||
44 | if (link(f1, f2) < 0) { | |
45 | /* copy file */ | |
46 | ret = xcp(f1, f2); | |
47 | if (ret == 0) | |
48 | unlink(f1); | |
49 | return(ret); | |
50 | } | |
51 | unlink(f1); | |
52 | return(0); | |
53 | } |