xref: /original-bsd/lib/libc/stdio/rdwr.c (revision 3839ed90)
1 #ifndef lint
2 static char sccsid[] = "@(#)rdwr.c	5.1 (Berkeley) 06/05/85";
3 #endif not lint
4 
5 #include	<stdio.h>
6 
7 fread(ptr, size, count, iop)
8 unsigned size, count;
9 register char *ptr;
10 register FILE *iop;
11 {
12 	register c;
13 	unsigned ndone, s;
14 
15 	ndone = 0;
16 	if (size)
17 	for (; ndone<count; ndone++) {
18 		s = size;
19 		do {
20 			if ((c = getc(iop)) >= 0)
21 				*ptr++ = c;
22 			else
23 				return(ndone);
24 		} while (--s);
25 	}
26 	return(ndone);
27 }
28 
29 fwrite(ptr, size, count, iop)
30 unsigned size, count;
31 register char *ptr;
32 register FILE *iop;
33 {
34 	register unsigned s;
35 	unsigned ndone;
36 
37 	ndone = 0;
38 	if (size)
39 	for (; ndone<count; ndone++) {
40 		s = size;
41 		do {
42 			putc(*ptr++, iop);
43 		} while (--s);
44 		if (ferror(iop))
45 			break;
46 	}
47 	return(ndone);
48 }
49