home *** CD-ROM | disk | FTP | other *** search
- /*
- * Return the number of the slot in the utmp file
- * corresponding to the current user: try for file 0, 1, 2.
- * Definition is the line number in the /etc/ttys file.
- */
-
-
- char *ttyname();
- char *getttys();
- char *rindex();
- static char ttys[] = "/etc/ttys";
-
- #define NULL 0
-
- ttyslot()
- {
- register char *tp, *p;
- register s, tf;
-
- if ((tp=ttyname(0))==NULL && (tp=ttyname(1))==NULL && (tp=ttyname(2))==NULL)
- return(0);
- if ((p = rindex(tp, '/')) == NULL)
- p = tp;
- else
- p++;
- if ((tf=open(ttys, 0)) < 0)
- return(0);
- s = 0;
- while (tp = getttys(tf)) {
- s++;
- if (strcmp(p, tp)==0) {
- close(tf);
- return(s);
- }
- }
- close(tf);
- return(0);
- }
-
- static char *
- getttys(f)
- {
- static char line[32];
- register char *lp;
-
- lp = line;
- for (;;) {
- if (read(f, lp, 1) != 1)
- return(NULL);
- if (*lp =='\n') {
- *lp = '\0';
- return(line+2);
- }
- if (lp >= &line[32])
- return(line+2);
- lp++;
- }
- }
-