1: /*
   2:  * Return the number of the slot in the utmp file
   3:  * corresponding to the current user: try for file 0, 1, 2.
   4:  * Definition is the line number in the /etc/ttys file.
   5:  */
   6: 
   7: 
   8: char    *ttyname();
   9: char    *getttys();
  10: char    *rindex();
  11: static  char    ttys[]  = "/etc/ttys";
  12: 
  13: #define NULL    0
  14: 
  15: ttyslot()
  16: {
  17:     register char *tp, *p;
  18:     register s, tf;
  19: 
  20:     if ((tp=ttyname(0))==NULL && (tp=ttyname(1))==NULL && (tp=ttyname(2))==NULL)
  21:         return(0);
  22:     if ((p = rindex(tp, '/')) == NULL)
  23:         p = tp;
  24:     else
  25:         p++;
  26:     if ((tf=open(ttys, 0)) < 0)
  27:         return(0);
  28:     s = 0;
  29:     while (tp = getttys(tf)) {
  30:         s++;
  31:         if (strcmp(p, tp)==0) {
  32:             close(tf);
  33:             return(s);
  34:         }
  35:     }
  36:     close(tf);
  37:     return(0);
  38: }
  39: 
  40: static char *
  41: getttys(f)
  42: {
  43:     static char line[32];
  44:     register char *lp;
  45: 
  46:     lp = line;
  47:     for (;;) {
  48:         if (read(f, lp, 1) != 1)
  49:             return(NULL);
  50:         if (*lp =='\n') {
  51:             *lp = '\0';
  52:             return(line+2);
  53:         }
  54:         if (lp >= &line[32])
  55:             return(line+2);
  56:         lp++;
  57:     }
  58: }

Defined functions

getttys defined in line 40; used 2 times
  • in line 9, 29
ttyslot defined in line 15; used 2 times

Defined variables

ttys defined in line 11; used 1 times
  • in line 26

Defined macros

NULL defined in line 13; used 5 times
Last modified: 1979-01-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 482
Valid CSS Valid XHTML 1.0 Strict