xref: /csrg-svn/lib/libcompat/4.1/getpw.c (revision 2018)
1*2018Swnj /* @(#)getpw.c	4.1 (Berkeley) 12/21/80 */
2*2018Swnj #include	<stdio.h>
3*2018Swnj 
4*2018Swnj getpw(uid, buf)
5*2018Swnj int uid;
6*2018Swnj char buf[];
7*2018Swnj {
8*2018Swnj 	static FILE *pwf;
9*2018Swnj 	register n, c;
10*2018Swnj 	register char *bp;
11*2018Swnj 
12*2018Swnj 	if(pwf == 0)
13*2018Swnj 		pwf = fopen("/etc/passwd", "r");
14*2018Swnj 	if(pwf == NULL)
15*2018Swnj 		return(1);
16*2018Swnj 	rewind(pwf);
17*2018Swnj 
18*2018Swnj 	for (;;) {
19*2018Swnj 		bp = buf;
20*2018Swnj 		while((c=getc(pwf)) != '\n') {
21*2018Swnj 			if(c == EOF)
22*2018Swnj 				return(1);
23*2018Swnj 			*bp++ = c;
24*2018Swnj 		}
25*2018Swnj 		*bp++ = '\0';
26*2018Swnj 		bp = buf;
27*2018Swnj 		n = 3;
28*2018Swnj 		while(--n)
29*2018Swnj 		while((c = *bp++) != ':')
30*2018Swnj 			if(c == '\n')
31*2018Swnj 				return(1);
32*2018Swnj 		while((c = *bp++) != ':') {
33*2018Swnj 			if(c<'0' || c>'9')
34*2018Swnj 				continue;
35*2018Swnj 			n = n*10+c-'0';
36*2018Swnj 		}
37*2018Swnj 		if(n == uid)
38*2018Swnj 			return(0);
39*2018Swnj 	}
40*2018Swnj }
41