36 lines
		
	
	
	
		
			589 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			589 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* $Id$ */
 | |
| #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*/
 | |
| }
 |