Ultrix-3.1/src/cmd/uucp/getpw.c
/**********************************************************************
* Copyright (c) Digital Equipment Corporation 1984, 1985, 1986. *
* All Rights Reserved. *
* Reference "/usr/src/COPYRIGHT" for applicable restrictions. *
**********************************************************************/
static char Sccsid[] = "@(#)getpw.c 3.0 4/22/86";
#include "stdio.h"
/*
* return passwd entry corresponding to uid
*
* return codes: 0 == success
* 1 == failure - could not find passwd entry
*/
getpw(uid, buf)
int uid;
char buf[];
{
static FILE *pwf;
register n, c;
register char *bp;
if(pwf == 0)
pwf = fopen("/etc/passwd", "r");
if(pwf == NULL)
return(1);
rewind(pwf);
uid &= 0377;
for (;;) {
bp = buf;
while((c=getc(pwf)) != '\n') {
if(c <= 0)
return(1);
*bp++ = c;
}
*bp++ = '\0';
bp = buf;
n = 3;
while(--n)
while((c = *bp++) != ':')
if(c == '\n')
return(1);
while((c = *bp++) != ':') {
if(c<'0' || c>'9')
continue;
n = n*10+c-'0';
}
if(n == uid)
return(0);
}
}