linux下 getch ()的实现
点击打开链接#include stdio.h>#include termios.h>#include unistd.h>#include assert.h>#include string.h>int getch(void);int main(void){char ch;printf("Input a char:");
·
点击打开链接 #include <stdio.h> #include <termios.h> #include <unistd.h> #include <assert.h> #include <string.h> int getch(void); int main(void) { char ch; printf("Input a char:"); fflush(stdin); ch = getch(); printf("\nYou input a %c\n", ch); return 0; } int getch(void) { int c=0; struct termios org_opts, new_opts; int res=0; //----- store old settings ----------- res=tcgetattr(STDIN_FILENO, &org_opts); assert(res==0); //---- set new terminal parms -------- memcpy(&new_opts, &org_opts, sizeof(new_opts)); new_opts.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ECHOPRT | ECHOKE | ICRNL); tcsetattr(STDIN_FILENO, TCSANOW, &new_opts); c=getchar(); //------ restore old settings --------- res=tcsetattr(STDIN_FILENO, TCSANOW, &org_opts);assert(res==0); return c; }
更多推荐
已为社区贡献1条内容
所有评论(0)