|
|
1.1 root 1: /* copy.c 6.1 83/07/29 */
2:
3: /*
4: * Copy from to in 10K units.
5: * Intended for use in system
6: * installation.
7: */
8: main()
9: {
10: int from, to;
11: char fbuf[50], tbuf[50];
12: char buffer[10240];
13: register int record;
14: extern int errno;
15:
16: from = getdev("From", fbuf, 0);
17: to = getdev("To", tbuf, 1);
18: for (record = 0; ; record++) {
19: int rcc, wcc;
20:
21: rcc = read(from, buffer, sizeof (buffer));
22: if (rcc == 0)
23: break;
24: if (rcc < 0) {
25: printf("Record %d: read error, errno=%d\n",
26: record, errno);
27: break;
28: }
29: if (rcc < sizeof (buffer))
30: printf("Record %d: read short; expected %d, got %d\n",
31: record, sizeof (buffer), rcc);
32: /*
33: * For bug in ht driver.
34: */
35: if (rcc > sizeof (buffer))
36: rcc = sizeof (buffer);
37: wcc = write(to, buffer, rcc);
38: if (wcc < 0) {
39: printf("Record %d: write error: errno=%d\n",
40: record, errno);
41: break;
42: }
43: if (wcc < rcc) {
44: printf("Record %d: write short; expected %d, got %d\n",
45: record, rcc, wcc);
46: break;
47: }
48: }
49: printf("Copy completed: %d records copied\n", record);
50: /* can't call exit here */
51: }
52:
53: getdev(prompt, buf, mode)
54: char *prompt, *buf;
55: int mode;
56: {
57: register int i;
58:
59: do {
60: printf("%s: ", prompt);
61: gets(buf);
62: i = open(buf, mode);
63: } while (i <= 0);
64: return (i);
65: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.