xref: /csrg-svn/lib/libc/stdio/rdwr.c (revision 22143)
1*22143Smckusick #ifndef lint
2*22143Smckusick static char sccsid[] = "@(#)rdwr.c	5.1 (Berkeley) 06/05/85";
3*22143Smckusick #endif not lint
4*22143Smckusick 
52029Swnj #include	<stdio.h>
62029Swnj 
fread(ptr,size,count,iop)72029Swnj fread(ptr, size, count, iop)
82029Swnj unsigned size, count;
92029Swnj register char *ptr;
102029Swnj register FILE *iop;
112029Swnj {
122029Swnj 	register c;
132029Swnj 	unsigned ndone, s;
142029Swnj 
152029Swnj 	ndone = 0;
162029Swnj 	if (size)
172029Swnj 	for (; ndone<count; ndone++) {
182029Swnj 		s = size;
192029Swnj 		do {
202029Swnj 			if ((c = getc(iop)) >= 0)
212029Swnj 				*ptr++ = c;
222029Swnj 			else
232029Swnj 				return(ndone);
242029Swnj 		} while (--s);
252029Swnj 	}
262029Swnj 	return(ndone);
272029Swnj }
282029Swnj 
fwrite(ptr,size,count,iop)292029Swnj fwrite(ptr, size, count, iop)
302029Swnj unsigned size, count;
312029Swnj register char *ptr;
322029Swnj register FILE *iop;
332029Swnj {
342029Swnj 	register unsigned s;
352029Swnj 	unsigned ndone;
362029Swnj 
372029Swnj 	ndone = 0;
382029Swnj 	if (size)
392029Swnj 	for (; ndone<count; ndone++) {
402029Swnj 		s = size;
412029Swnj 		do {
422029Swnj 			putc(*ptr++, iop);
432029Swnj 		} while (--s);
442029Swnj 		if (ferror(iop))
452029Swnj 			break;
462029Swnj 	}
472029Swnj 	return(ndone);
482029Swnj }
49