/********************************************************************** * Copyright (c) Digital Equipment Corporation 1984, 1985, 1986. * * All Rights Reserved. * * Reference "/usr/src/COPYRIGHT" for applicable restrictions. * **********************************************************************/ /* SCCSID: @(#)getpw.c 3.0 4/22/86 */ /* (System 5) 1.2 */ /* 3.0 SID # 1.2 */ /*LINTLIBRARY*/ #include <stdio.h> #include <ctype.h> extern void rewind(); extern FILE *fopen(); static FILE *pwf; int getpw(uid, buf) int uid; char buf[]; { register n, c; register char *bp; if(pwf == 0) pwf = fopen("/etc/passwd", "r"); if(pwf == NULL) return(1); rewind(pwf); while(1) { bp = buf; while((c=getc(pwf)) != '\n') { if(c == EOF) return(1); *bp++ = c; } *bp = '\0'; bp = buf; n = 3; while(--n) while((c = *bp++) != ':') if(c == '\n') return(1); while((c = *bp++) != ':') if(isdigit(c)) n = n*10+c-'0'; else continue; if(n == uid) return(0); } }