|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1988 Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution is only permitted until one year after the first shipment ! 6: * of 4.4BSD by the Regents. Otherwise, redistribution and use in source and ! 7: * binary forms are permitted provided that: (1) source distributions retain ! 8: * this entire copyright notice and comment, and (2) distributions including ! 9: * binaries display the following acknowledgement: This product includes ! 10: * software developed by the University of California, Berkeley and its ! 11: * contributors'' in the documentation or other materials provided with the ! 12: * distribution and in all advertising materials mentioning features or use ! 13: * of this software. Neither the name of the University nor the names of ! 14: * its contributors may be used to endorse or promote products derived from ! 15: * this software without specific prior written permission. ! 16: * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 17: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 18: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 19: * ! 20: * @(#)docopy.c 7.3 (Berkeley) 6/28/90 ! 21: */ ! 22: ! 23: #define SIZE 10240 ! 24: ! 25: docopy(from, to, nrecs) ! 26: register int from, to, nrecs; ! 27: { ! 28: register int record, rcc, wcc; ! 29: char buf[SIZE]; ! 30: ! 31: for (record = 0;;) { ! 32: if (!(rcc = read(from, buffer, SIZE))) ! 33: break; ! 34: if (rcc < 0) { ! 35: printf("Record %d: read error, errno=%d\n", ! 36: record, errno); ! 37: break; ! 38: } ! 39: if (rcc < SIZE) ! 40: printf("Record %d: read short; expected %d, got %d\n", ! 41: record, SIZE, rcc); ! 42: #ifdef vax ! 43: /* For bug in ht driver. */ ! 44: if (rcc > SIZE) ! 45: rcc = SIZE; ! 46: #endif ! 47: if ((wcc = write(to, buffer, rcc)) < 0) { ! 48: printf("Record %d: write error: errno=%d\n", ! 49: record, errno); ! 50: break; ! 51: } ! 52: if (wcc < rcc) { ! 53: printf("Record %d: write short; expected %d, got %d\n", ! 54: record, rcc, wcc); ! 55: break; ! 56: } ! 57: if (nrecs > 0 && ++record == nrecs) ! 58: break; ! 59: } ! 60: printf("copy completed: %d records copied\n", record); ! 61: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.