getpw.c 589 B

123456789101112131415161718192021222324252627282930313233343536
  1. /* $Id$ */
  2. #include <stdio.h>
  3. getpw(uid, buf)
  4. int uid;
  5. char buf[];
  6. {
  7. register FILE *pwf;
  8. register int ch, i;
  9. register char *bp;
  10. pwf = fopen("/etc/passwd", "r");
  11. if (pwf == NULL) return(1);
  12. for (;;) {
  13. bp = buf;
  14. while ((ch = getc(pwf)) != '\n') {
  15. if (ch == EOF) return 1;
  16. *bp++ = ch;
  17. }
  18. *bp++ = '\0';
  19. bp = buf;
  20. for (i = 2; i; i--) {
  21. while ((ch = *bp++) != ':') {
  22. if(ch = '\0') return 1;
  23. }
  24. }
  25. i = 0;
  26. while ((ch = *bp++) != ':') {
  27. if (ch < '0' || ch > '9') return 1;
  28. i = i * 10 + (ch - '0');
  29. }
  30. if (i == uid) return(0);
  31. }
  32. /*NOTREACHED*/
  33. }