Bell 32V development
[unix-history] / usr / src / libc / stdio / getpw.c
CommitLineData
1f92ea9c
TL
1#include <stdio.h>
2
3getpw(uid, buf)
4int uid;
5char buf[];
6{
7 static FILE *pwf;
8 register n, c;
9 register char *bp;
10
11 if(pwf == 0)
12 pwf = fopen("/etc/passwd", "r");
13 if(pwf == NULL)
14 return(1);
15 rewind(pwf);
16
17 for (;;) {
18 bp = buf;
19 while((c=getc(pwf)) != '\n') {
20 if(c == EOF)
21 return(1);
22 *bp++ = c;
23 }
24 *bp++ = '\0';
25 bp = buf;
26 n = 3;
27 while(--n)
28 while((c = *bp++) != ':')
29 if(c == '\n')
30 return(1);
31 while((c = *bp++) != ':') {
32 if(c<'0' || c>'9')
33 continue;
34 n = n*10+c-'0';
35 }
36 if(n == uid)
37 return(0);
38 }
39}