xref: /plan9-contrib/sys/src/ape/lib/ap/plan9/9readn.c (revision 40ef9009116dd37656783aaadc8782c1d8bfb056)
1*40ef9009SDavid du Colombier #include "sys9.h"
2*40ef9009SDavid du Colombier 
3*40ef9009SDavid du Colombier long
_READN(int f,void * av,long n)4*40ef9009SDavid du Colombier _READN(int f, void *av, long n)
5*40ef9009SDavid du Colombier {
6*40ef9009SDavid du Colombier 	char *a;
7*40ef9009SDavid du Colombier 	long m, t;
8*40ef9009SDavid du Colombier 
9*40ef9009SDavid du Colombier 	a = av;
10*40ef9009SDavid du Colombier 	t = 0;
11*40ef9009SDavid du Colombier 	while(t < n){
12*40ef9009SDavid du Colombier 		m = _READ(f, a+t, n-t);
13*40ef9009SDavid du Colombier 		if(m <= 0){
14*40ef9009SDavid du Colombier 			if(t == 0)
15*40ef9009SDavid du Colombier 				return m;
16*40ef9009SDavid du Colombier 			break;
17*40ef9009SDavid du Colombier 		}
18*40ef9009SDavid du Colombier 		t += m;
19*40ef9009SDavid du Colombier 	}
20*40ef9009SDavid du Colombier 	return t;
21*40ef9009SDavid du Colombier }
22