Hi,buddy I am puzzled by the linux termios. First Question about /dev/tty0 and /dev/tty,this two devices is the same one? When i am in X terminal,as /dev/pts/0 , i do "echo hello > /dev/pts/0 and echo hello > /dev/tty ", they return the same like that "hello" on the screen .This means /dev/tty ->/dev/pts/0? But "echo hello > /dev/tty0",there is nothing on the screen.And when i go to Init 3 mode ,like /dev/tty1,when i do "echo hello > /dev/tty1 and echo hello > .dev/tty and echo hello > /dev/tty0" ,They return the same all print hello on the screen.Do they all point to the /dev/tty1? The second Question is that i write a small program to get keyboard input like below.When i run it in X terminal ,when i press keyboard it can return but can not get the press and release event.And in the console,like tty1,it doesn't work .i don't know why. file : get_keyboard.c #include <stdio.h> #include <linux/keyboard.h> #include <sys/ioctl.h> #include <fcntl.h> #include <linux/kd.h> #include <termios.h> #include <unistd.h> int main() { int fd,len,i; struct kbentry entry; unsigned char buf[64]; struct termios ts,old_ts; char * path; path = ttyname(0); printf("%s!\n",path); fd = open(path, O_RDONLY|O_NOCTTY); if(fd < 0){ printf("open the device error!\n"); } printf("fd --- %d!\n",fd); if (ioctl( fd, KDSKBMODE, K_RAW ) < 0) { printf("set mode wrong!\n"); } tcgetattr( fd, &old_ts ); ts = old_ts; ts.c_cc[VTIME] = 0; ts.c_cc[VMIN] = 1; ts.c_lflag &= ~(ICANON|ECHO|ISIG); ts.c_iflag = 0; tcsetattr( fd, TCSAFLUSH, &ts ); tcsetpgrp( fd, getpgrp() ); entry.kb_table = K_NORMTAB; entry.kb_value = 0; while(1){ len=read(fd,buf,64); printf("len ========= %d!\n",len); for(i =0; i < len;i++){ entry.kb_index = buf[i]; if(ioctl(fd,KDGKBENT,&entry)){ printf("struct entry :%d %d %d\n",entry.kb_table,entry.kb_index,entry.kb_value); if('2' == entry.kb_index){ tcsetattr( fd, TCSAFLUSH, &old_ts ); exit(0); } } } } } -- To unsubscribe from this list: send the line "unsubscribe linux-console" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html