|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)copy.c 1.1 86/02/03 SMI"; /* From ancient history */
3: #endif
4:
5: #define BUFSIZ (3*10*1024) /* must be multiple of 10K, < 32K */
6:
7: /*
8: * Copy from to in large units.
9: * Intended for use in bootstrap procedure.
10: */
11: main()
12: {
13: int from, to;
14: char fbuf[50], tbuf[50];
15: static char buffer[BUFSIZ];
16: register int i;
17: register int count = 0;
18:
19: printf("Standalone Copy\n");
20: from = getdev("From", fbuf, 0);
21: to = getdev("To", tbuf, 1);
22: for (;;) {
23: i = read(from, buffer, sizeof (buffer));
24: if (i <= 0)
25: break;
26: if (write(to, buffer, i) != i) {
27: printf("Write error\n");
28: break;
29: }
30: count += i;
31: }
32: if (i < 0)
33: printf("Read error\n");
34: printf("Copy completed - %d bytes\n", count);
35: }
36:
37: getdev(prompt, buf, mode)
38: char *prompt, *buf;
39: int mode;
40: {
41: register int i;
42:
43: do {
44: printf("%s: ", prompt);
45: gets(buf);
46: i = open(buf, mode);
47: } while (i <= 0);
48: return (i);
49: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.