|
|
1.1 root 1: /* fdcompare.c - are two files identical? */
2:
3: #include "../h/mh.h"
4: #include <stdio.h>
5:
6: long lseek();
7:
8:
9: fdcompare (fd1, fd2)
10: register int fd1,
11: fd2;
12: {
13: register int i,
14: n1,
15: n2,
16: resp;
17: register char *c1,
18: *c2;
19: char b1[BUFSIZ],
20: b2[BUFSIZ];
21:
22: resp = 1;
23: while ((n1 = read (fd1, b1, sizeof b1)) >= 0
24: && (n2 = read (fd2, b2, sizeof b2)) >= 0
25: && n1 == n2) {
26: c1 = b1;
27: c2 = b2;
28: for (i = n1 < sizeof b1 ? n1 : sizeof b1; i--;)
29: if (*c1++ != *c2++) {
30: resp = 0;
31: goto leave;
32: }
33: if (n1 < sizeof b1)
34: goto leave;
35: }
36: resp = 0;
37:
38: leave: ;
39: (void) lseek (fd1, 0L, 0);
40: (void) lseek (fd2, 0L, 0);
41: return resp;
42: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.