|
|
1.1 ! root 1: /* ! 2: * Return the number of the slot in the utmp file ! 3: * corresponding to the current user. ! 4: * Definition is the line number in the /etc/ttys file. ! 5: */ ! 6: ! 7: char *cttyname(); ! 8: char *strcpy(); ! 9: char *getttys(); ! 10: ! 11: ttyslot() ! 12: { ! 13: register char *cp, *tp; ! 14: register int s, tf; ! 15: ! 16: if ((cp = cttyname()) == 0) ! 17: return(0); ! 18: if (strncmp(cp, "/dev/", 5) == 0) ! 19: cp += 5; ! 20: if ((tf=open("/etc/ttys", 0)) < 0) ! 21: return(0); ! 22: s = 0; ! 23: while (tp = getttys(tf)) { ! 24: s++; ! 25: if (strcmp(cp, tp)==0) { ! 26: close(tf); ! 27: return(s); ! 28: } ! 29: } ! 30: close(tf); ! 31: return(0); ! 32: } ! 33: ! 34: static char * ! 35: getttys(f) ! 36: { ! 37: static char line[32]; ! 38: register char *lp; ! 39: ! 40: lp = line; ! 41: for (;;) { ! 42: if (read(f, lp, 1) != 1) ! 43: return(0); ! 44: if (*lp =='\n') { ! 45: *lp = '\0'; ! 46: return(line+2); ! 47: } ! 48: if (lp >= &line[32]) ! 49: return(line+2); ! 50: lp++; ! 51: } ! 52: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.