ttyslot.c

来自「unix v7是最后一个广泛发布的研究型UNIX版本」· C语言 代码 · 共 59 行

C
59
字号
/* * 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	0ttyslot(){	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++;	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?