2013-01-04 45 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()返回的錯誤了。)