|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982, 1986, 1988 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: * ! 6: * @(#)copy.c 7.5 (Berkeley) 5/24/88 ! 7: */ ! 8: ! 9: #define BSIZE 10240 ! 10: ! 11: /* ! 12: * Copy from from to to. Intended for use in system installation. ! 13: */ ! 14: main() ! 15: { ! 16: extern int errno; ! 17: register int from, to, record, rcc, wcc; ! 18: char buf[BSIZE]; ! 19: ! 20: from = getfile("From", 0); ! 21: to = getfile("To", 1); ! 22: for (record = 0;; ++record) { ! 23: if (!(rcc = read(from, buf, BSIZE))) ! 24: break; ! 25: if (rcc < 0) { ! 26: printf("Record %d: read error, errno=%d\n", ! 27: record, errno); ! 28: break; ! 29: } ! 30: if (!record && rcc != BSIZE) { ! 31: rcc = BSIZE; ! 32: printf("Block size set from input; %d bytes\n", BSIZE); ! 33: } ! 34: if (rcc < BSIZE) ! 35: printf("Record %d: read short; expected %d, got %d\n", ! 36: record, BSIZE, rcc); ! 37: #ifdef vax ! 38: /* For bug in ht driver. */ ! 39: if (rcc > BSIZE) ! 40: rcc = BSIZE; ! 41: #endif ! 42: if ((wcc = write(to, buf, rcc)) < 0) { ! 43: printf("Record %d: write error: errno=%d\n", ! 44: record, errno); ! 45: break; ! 46: } ! 47: if (wcc < rcc) { ! 48: printf("Record %d: write short; expected %d, got %d\n", ! 49: record, rcc, wcc); ! 50: break; ! 51: } ! 52: } ! 53: printf("copy completed: %d records copied\n", record); ! 54: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.