#include <stdio.h> #include <termios.h> char getch(void) { char buf = 0; struct termios old = {0}; if (tcgetattr(0, &old) < 0) perror("tcsetattr()"); old.c_lflag &= ~ICANON; old.c_lflag &= ~ECHO; old.c_cc[VMIN] = 1; old.c_cc[VTIME] = 0; if (tcsetattr(0, TCSANOW, &old) < 0) perror("tcsetattr ICANON"); if (read(0, &buf, 1) < 0) perror ("read()"); old.c_lflag |= ICANON; old.c_lflag |= ECHO; if (tcsetattr(0, TCSADRAIN, &old) < 0) perror ("tcsetattr ~ICANON"); return (buf); } int main() { char key; printf("Press 'x' to exit...\n"); while((key=getch()) && (key != 'x')) printf ("you pressed %c\n", key); return(0); }Reference
TAG
首都機能移轉
(2)
歌詞
(2)
靠北文
(40)
戲言
(30)
糟糕
(7)
ACG
(23)
Assembly
(2)
Boost
(2)
C
(31)
C++
(69)
CMake
(4)
CSIE
(67)
Debian
(34)
Design_Pattern
(2)
Django
(1)
Eclipse
(1)
en_US
(13)
FFmpeg
(3)
FoolproofProject
(26)
FreeBSD
(2)
Git
(4)
GNU_Linux
(65)
IDE
(5)
Java
(11)
JavaScript
(19)
KDE
(15)
Khopper
(16)
KomiX
(3)
Kubuntu
(18)
Life
(1)
Lighttpd
(2)
Mac_OS_X
(2)
Opera
(1)
PHP
(2)
PicKing
(2)
Programing
(21)
Prolog
(1)
Python
(7)
QSnapshot
(2)
Qt
(30)
Qt_Jambi
(1)
Regular_Expression
(1)
Shell_Script
(7)
Talk
(98)
VirtualBox
(7)
Visual_Studio
(13)
Windows
(18)
zh_TW
(36)
2008年1月28日 星期一
getch()的POSIX實作
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言