⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 do_echo.c

📁 &#61599 Douglas Comer
💻 C
字号:
/* do_echo.c - do_echo */#include <sys/types.h>#include <termios.h>#include <stdio.h>#include "telnet.h"char		doecho;		/* nonzero, if remote ECHO	*/extern u_char	option_cmd;/*------------------------------------------------------------------------ * do_echo - handle TELNET WILL/WON'T ECHO option *------------------------------------------------------------------------ */intdo_echo(FILE *rfp, FILE *tfp, int c){        struct termios  tio;	static char	savec[2];	int		ok, tfd = fileno(tfp);	if (doecho) {		if (option_cmd == TCWILL)			return 0;	/* already doing ECHO		*/	} else if (option_cmd == TCWONT)		return 0;		/* already NOT doing ECHO	*/        if (ok = tcgetattr(tfd, &tio) == 0) {        	if (option_cmd == TCWILL) {              	 	tio.c_lflag &= ~(ECHO | ICANON);			/* VMIN & VTIME are overloaded with other chars,			 * so save and restore them later.			 */			savec[0] = tio.c_cc[VMIN];			savec[1] = tio.c_cc[VTIME];			tio.c_cc[VMIN] = 1;			tio.c_cc[VTIME] = 0;		} else {			tio.c_lflag |= (ECHO | ICANON);			tio.c_cc[VMIN] = savec[0];			tio.c_cc[VTIME] = savec[1];		}		ok &= tcsetattr(tfd, TCSADRAIN, &tio) == 0;        }	if (ok)		doecho = !doecho;        (void) putc(TCIAC, rfp);        if (doecho)                (void) putc(TCDO, rfp);        else                (void) putc(TCDONT, rfp);	(void) putc((char)c, rfp);	return 0;}

⌨️ 快捷键说明

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