xref: /plan9/sys/src/cmd/auth/lib/readarg.c (revision 7c70c028d2d46a27a61ae88e6df0eb0935d9da7a)
1219b2ee8SDavid du Colombier #include <u.h>
2219b2ee8SDavid du Colombier #include <libc.h>
35979f962SDavid du Colombier #include <bio.h>
49a747e4fSDavid du Colombier #include "authcmdlib.h"
5219b2ee8SDavid du Colombier 
6219b2ee8SDavid du Colombier int
readarg(int fd,char * arg,int len)7219b2ee8SDavid du Colombier readarg(int fd, char *arg, int len)
8219b2ee8SDavid du Colombier {
9219b2ee8SDavid du Colombier 	char buf[1];
10219b2ee8SDavid du Colombier 	int i;
11219b2ee8SDavid du Colombier 
12219b2ee8SDavid du Colombier 	i = 0;
13*7c70c028SDavid du Colombier 	memset(arg, 0, len);
14*7c70c028SDavid du Colombier 	while(read(fd, buf, 1) == 1){
15219b2ee8SDavid du Colombier 		if(i < len - 1)
16219b2ee8SDavid du Colombier 			arg[i++] = *buf;
17219b2ee8SDavid du Colombier 		if(*buf == '\0'){
18219b2ee8SDavid du Colombier 			arg[i] = '\0';
19219b2ee8SDavid du Colombier 			return 0;
20219b2ee8SDavid du Colombier 		}
21219b2ee8SDavid du Colombier 	}
22*7c70c028SDavid du Colombier 	return -1;
23219b2ee8SDavid du Colombier }
24