|
|
1.1 root 1: /*
2: * Copy data from one file to another for a length.
3: * Returns 1 on success, 0 on failure.
4: */
5: #include <stdio.h>
6:
7: copyd(ofp, ifp, len)
8: FILE *ofp, *ifp;
9: unsigned long len;
10: {
11: register n, r;
12: char buf[BUFSIZ];
13:
14: for (n = ftell(ifp) % BUFSIZ; len; (len -= n), (n = 0)) {
15: if ((n = BUFSIZ - n) > len)
16: n = len;
17: if (!(r = fread(buf, 1, n, ifp)) ||
18: (r != fwrite(buf, 1, r, ofp)) ||
19: (r != n))
20: return (0);
21: }
22: return (1);
23: }
24:
25: #ifdef TEST
26: #include <misc.h>
27:
28: main(argc, argv)
29: char *argv[];
30: {
31: extern long atol();
32:
33: if (argc != 4)
34: fatal("test to from length");
35:
36: if (!copyd(xopen(argv[1], "w"), xopen(argv[2], "r"), atol(argv[3])))
37: fatal("Error in copy");
38: }
39: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.