Research V7 development
[unix-history] / usr / src / cmd / uucp / cpmv.c
CommitLineData
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
10xcp(f1, f2)
11char *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
39xmv(f1, f2)
40char *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}