2013-01-04 104 views

回答

2

默认情况下,控制台处于'canonical'模式,它会对输入执行一定的处理负载,并且不会将其传递到进程的打开文件描述符,直到遇到新行。你想把stdin到“非经典”模式,以获得字节到达时:

#include <termios.h> 

struct termios terminal_info; 
tcgetattr(STDIN_FILENO, &terminal_info); 
terminal_info.c_lflag &= ~ICANON; 
tcsetattr(STDIN_FILENO, TCSANOW, terminal_info); 

(你应该检查通过tcgetattr()tcsetattr()返回的错误了。)