# 2.11BSD#431 - /usr/src/ucb/users.c

##### Functions

    main              X
    putline           X
    scmp              X
    summary           X

##### Variables

    copyright         X
    names             X
    namp              X
    utmp              X

##### Macros

    LMAX              X
    NMAX              X

       1: /*
       2:  * Copyright (c) 1980 Regents of the University of California.
       3:  * All rights reserved.  The Berkeley software License Agreement
       4:  * specifies the terms and conditions for redistribution.
       5:  */
       6:
       7: #if !defined(lint) && defined(DOSCCS)
       8: char copyright[] =
       9: "@(#) Copyright (c) 1980 Regents of the University of California.\n\
      10:  All rights reserved.\n";
      11:
      12: static char sccsid[] = "@(#)users.c	5.2.1 (2.11BSD) 1996/11/17";
      13: #endif
      14:
      15: /*
      16:  * users
      17:  */
      18:
      19: #include <stdio.h>
      20: #include <utmp.h>
      21:
      22: #define NMAX sizeof(utmp.ut_name)
      23: #define LMAX sizeof(utmp.ut_line)
      24:
      25: struct utmp utmp;
      26:
      27: main(argc, argv)
      28: char **argv;
      29: {
      30:     register char *tp, *s;
      31:     register FILE *fi;
      32:
      33:     s = _PATH_UTMP;
      34:     if(argc == 2)
      35:         s = argv[1];
      36:     if ((fi = fopen(s, "r")) == NULL) {
      37:         perror(s);
      38:         exit(1);
      39:     }
      40:     while (fread((char *)&utmp, sizeof(utmp), 1, fi) == 1) {
      41:         if(utmp.ut_name[0] == '\0')
      42:             continue;
      43:         putline();
      44:     }
      45:     summary();
      46: }
      47:
      48: char    *names[128];
      49: char    **namp = names;
      50: putline()
      51: {
      52:     char temp[NMAX+1];
      53:     strncpy(temp, utmp.ut_name, NMAX);
      54:     temp[NMAX] = 0;
      55:     *namp = (char *)malloc(strlen(temp) + 1);
      56:     strcpy(*namp++, temp);
      57: }
      58:
      59: scmp(p, q)
      60: char **p, **q;
      61: {
      62:     return(strcmp(*p, *q));
      63: }
      64: summary()
      65: {
      66:     register char **p;
      67:
      68:     qsort(names, namp - names, sizeof names[0], scmp);
      69:     for (p=names; p < namp; p++) {
      70:         if (p != names)
      71:             putchar(' ');
      72:         fputs(*p, stdout);
      73:     }
      74:     if (namp != names)      /* at least one user */
      75:         putchar('\n');
      76: }

#### Defined functions

main defined in line 27; never used
putline defined in line 50; used 1 times

- in line 43

scmp defined in line 59; used 1 times

- in line 68

summary defined in line 64; used 1 times

- in line 45

#### Defined variables

copyright defined in line 8; never used
names defined in line 48; used 7 times

- in line 49, 68-74(6)

namp defined in line 49; used 5 times

- in line 55-56(2), 68-74(3)

sccsid defined in line 12; never used
utmp defined in line 25; used 6 times

- in line 22-23(2), 40-41(3), 53

#### Defined macros

LMAX defined in line 23; never used
NMAX defined in line 22; used 3 times

- in line 52-54(3)

Last modified: 1996-11-18 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 505 |