home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / cmd / uucp / cpmv.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  749 b   |  54 lines

  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. }
  54.