1 #include <sys/time.h> 2 #include <stdio.h> 3 #include <sys/types.h> 4 #include <sys/stat.h> 5 #include <fcntl.h> 6 #include <assert.h> 7 #include <stdlib.h> 8 #include <string.h> 9 #include <unistd.h> 10 #include <sys/socket.h> 11 #include <netinet/in.h> 12 #include <arpa/inet.h> 13 #include <errno.h> 14 #include <sys/select.h> 15 16 int main() 17 { 18 int keyboard; 19 int ret,i; 20 char c; 21 fd_set readfd; 22 struct timeval timeout; 23 keyboard = open("/dev/tty",O_RDONLY|O_NONBLOCK); 24 assert(keyboard>0); 25 while(1){ 26 timeout.tv_sec = 1; 27 timeout.tv_usec = 0; 28 FD_ZERO(&readfd); 29 FD_SET(keyboard,&readfd); 30 ret = select(keyboard+1,&readfd,NULL,NULL,&timeout); 31 if(FD_ISSET(keyboard,&readfd)){ 32 i = read(keyboard,&c,1); 33 if(' '==c) 34 continue; 35 printf("The input is %c ",c); 36 if('q'==c) 37 break; 38 } 39 } 40 return 0; 41 }