BSD 4_1c_2 release
[unix-history] / usr / src / lib / libc / gen / ttyslot.c
/* @(#)ttyslot.c 4.1 (Berkeley) 12/21/80 */
/*
* 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++;
}
}