148368Sbostic /*- 2*61240Sbostic * Copyright (c) 1980, 1993 3*61240Sbostic * The Regents of the University of California. All rights reserved. 448368Sbostic * 548368Sbostic * %sccs.include.proprietary.c% 621327Sdist */ 721327Sdist 826517Sdonn #if defined(LIBC_SCCS) && !defined(lint) 9*61240Sbostic static char sccsid[] = "@(#)getpw.c 8.1 (Berkeley) 06/04/93"; 1048368Sbostic #endif /* LIBC_SCCS and not lint */ 1121327Sdist 122018Swnj #include <stdio.h> 132018Swnj getpw(uid,buf)142018Swnjgetpw(uid, buf) 152018Swnj int uid; 162018Swnj char buf[]; 172018Swnj { 182018Swnj static FILE *pwf; 192018Swnj register n, c; 202018Swnj register char *bp; 212018Swnj 222018Swnj if(pwf == 0) 232018Swnj pwf = fopen("/etc/passwd", "r"); 242018Swnj if(pwf == NULL) 252018Swnj return(1); 262018Swnj rewind(pwf); 272018Swnj 282018Swnj for (;;) { 292018Swnj bp = buf; 302018Swnj while((c=getc(pwf)) != '\n') { 312018Swnj if(c == EOF) 322018Swnj return(1); 332018Swnj *bp++ = c; 342018Swnj } 352018Swnj *bp++ = '\0'; 362018Swnj bp = buf; 372018Swnj n = 3; 382018Swnj while(--n) 392018Swnj while((c = *bp++) != ':') 402018Swnj if(c == '\n') 412018Swnj return(1); 422018Swnj while((c = *bp++) != ':') { 432018Swnj if(c<'0' || c>'9') 442018Swnj continue; 452018Swnj n = n*10+c-'0'; 462018Swnj } 472018Swnj if(n == uid) 482018Swnj return(0); 492018Swnj } 502018Swnj } 51