#include <termios.h> #include <unistd.h> #include <assert.h> #include <string.h> /*------------------------------------------------*/ 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); }
2009/07/12
getch() in Linux
A good reference from http://blog.csdn.net/t_larry/archive/2006/04/06/653124.aspx
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言