ack/lang/cem/libcc/stdio/getpw.c

37 lines
589 B
C
Raw Normal View History

1994-06-24 14:02:31 +00:00
/* $Id$ */
1987-01-27 15:57:55 +00:00
#include <stdio.h>
getpw(uid, buf)
int uid;
char buf[];
{
register FILE *pwf;
register int ch, i;
register char *bp;
pwf = fopen("/etc/passwd", "r");
if (pwf == NULL) return(1);
for (;;) {
bp = buf;
while ((ch = getc(pwf)) != '\n') {
if (ch == EOF) return 1;
*bp++ = ch;
}
*bp++ = '\0';
bp = buf;
for (i = 2; i; i--) {
while ((ch = *bp++) != ':') {
if(ch = '\0') return 1;
}
}
i = 0;
while ((ch = *bp++) != ':') {
if (ch < '0' || ch > '9') return 1;
i = i * 10 + (ch - '0');
}
if (i == uid) return(0);
}
/*NOTREACHED*/
}