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

📄 shkeys.c

📁 dtelent是开源的开发项目
💻 C
字号:
/* shkeys.c *//* compile me: cc -o shkeys shkeys.c */#include <errno.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <termios.h>#include <unistd.h>int main (void){    struct termios oldtio, newtio;    int rc, rdlen, c, i, leave;    char buf [12];    char prbuff [128], *p;    rc= tcgetattr (0, &oldtio);    if (rc) {        perror ("tcgetattr (0, &oldtio)");	return 4;    }    memcpy (&newtio, &oldtio, sizeof (newtio));    newtio.c_lflag &= ~(ISIG | ICANON | ECHO);    newtio.c_iflag &= ~(INLCR | ICRNL | IXON | IXOFF);    newtio.c_cflag &= ~(PARENB);    newtio.c_cflag = (newtio.c_cflag & ~CSIZE) | CS8;    newtio.c_cc[VMIN] = 1;    rc= tcsetattr (0, TCSAFLUSH, &newtio);    if (rc) {	perror ("tcsetattr (0, TCSAFLUSH, &newtio)");	return 12;    }     printf ("Press any key to see codes, ctrl-D to terminate\n\n");    for (leave= 0; ! leave; ) {        rdlen= read (0, buf, sizeof (buf));	if (rdlen<0) {	    perror ("read(0)");	    leave= 1; /* error */	} else if (rdlen==0) {	    leave= 1; /* EOF */	} else {	    p= prbuff;	    for (i=0; i<rdlen; ++i) {	        c= (unsigned char)buf[i];	        if (c < ' ') {		    p += sprintf (p, "^%c",  c+64);		} else if (c==0x7f) {		    p += sprintf (p, "^?");		} else {		    p += sprintf (p, "%c", c);		}	    }	    for (i=0; i<rdlen; ++i) {	        c= (unsigned char)buf[i];	        printf ("%-16s %3d 0x%02x 0%03o\n", prbuff, c, c, c);		prbuff[0] = '\0';	    }	    if (buf[0]==4) leave= 1; /* ctrl-D */	}    }    rc= tcsetattr (0, TCSAFLUSH, &oldtio);    if (rc) {	perror ("tcsetattr (0, TCSAFLUSH, &oldtio)");	return 12;    }    return 0;}

⌨️ 快捷键说明

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