Annotation of researchv10dc/cmd/ps/getuname.c, revision 1.1.1.1

1.1       root        1: #include "ps.h"
                      2: #include <pwd.h>
                      3: 
                      4: static List namelist;
                      5: static Entry *prev;
                      6: 
                      7: char *
                      8: getuname(uid)
                      9: register uid;
                     10: {
                     11:        register Entry *ep;
                     12: 
                     13:        if((ep = prev) && ep->e_val == uid)
                     14:                return ep->e_name;
                     15:        for(ep = namelist.begin; ep; ep = ep->next) {
                     16:                if(ep->e_val == uid) {
                     17:                        prev = ep;
                     18:                        return ep->e_name;
                     19:                }
                     20:        }
                     21:        return "?";
                     22: }
                     23: 
                     24: getlogins()
                     25: {
                     26:        register Entry *ep;
                     27:        register Entry *last;
                     28:        register struct passwd *pp;
                     29: 
                     30:        last = NULL;
                     31:        while(pp = getpwent()) {
                     32:                if((ep = Malloc(Entry, 1)) == 0)
                     33:                        break;
                     34:                if (last)
                     35:                        last->next = ep;
                     36:                else
                     37:                        namelist.begin = ep;
                     38:                ep->next = NULL;
                     39:                last = ep;
                     40:                namelist.nentry++;
                     41:                ep->e_val = pp->pw_uid;
                     42:                strncpy(ep->e_name, pp->pw_name, sizeof(ep->e_name));
                     43:        }
                     44:        endpwent();
                     45: }

unix.superglobalmegacorp.com

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