Annotation of 42BSD/ingres/source/iutil/getnuser.c, revision 1.1.1.1

1.1       root        1: # include      <stdio.h>
                      2: # include      <ingres.h>
                      3: # include      <aux.h>
                      4: # include      <sccs.h>
                      5: 
                      6: SCCSID(@(#)getnuser.c  7.1     2/5/81)
                      7: 
                      8: /*
                      9: **  GETNUSER -- get line from user file based on name
                     10: **
                     11: **     Given a user name as a string, this routine returns the
                     12: **     corresponding line from .../files/users into a buffer.
                     13: **
                     14: **     Parameters:
                     15: **             name -- the name of the user
                     16: **             buf -- a buf to dump the line in (declare as
                     17: **                     char buf[MAXLINE + 1]
                     18: **
                     19: **     Returns:
                     20: **             zero -- success
                     21: **             one -- failure (user not present)
                     22: **
                     23: **     Side effects:
                     24: **             none
                     25: **
                     26: **     Files:
                     27: **             .../files/users (readable)
                     28: */
                     29: 
                     30: getnuser(name, buf)
                     31: char   *name;
                     32: char   buf[];
                     33: {
                     34:        FILE            *userf;
                     35:        register char   c;
                     36:        register char   *bp;
                     37:        
                     38:        userf = fopen(ztack(Pathname, "/files/users"), "r");
                     39:        if (userf == NULL)
                     40:                syserr("getuser: open err");
                     41:        
                     42:        for (;;)
                     43:        {
                     44:                bp = buf;
                     45:                while ((c = getc(userf)) != '\n')
                     46:                {
                     47:                        if (c == EOF)
                     48:                        {
                     49:                                fclose(userf);
                     50:                                return (1);
                     51:                        }
                     52:                        *bp++ = c;
                     53:                }
                     54:                *bp++ = '\0';
                     55:                bp = buf;
                     56:                while ((c = *bp++) != ':')
                     57:                {
                     58:                        if (c == '\0')
                     59:                        {
                     60:                                fclose(userf);
                     61:                                return (1);
                     62:                        }
                     63:                }
                     64:                *--bp = 0;
                     65:                if (sequal(buf, name))
                     66:                {
                     67:                        fclose(userf);
                     68:                        *bp = ':';
                     69:                        return (0);
                     70:                }
                     71:        }
                     72: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.