在实现more命令时所遇到的问题未考虑重定向前,无阻塞的获取终端按键是如下代码所示实现的fp_tty=fopen("/dev/tty","rw");//更改终端属性,使字符立即输入且不显示tcgetattr(0,&oldt);newt=oldt;newt.c_lflag&=~(ICANON|ECHO);tcsetattr(0,TCSANOW,&newt);intch=fgetc(fp_tty);重定向后发现fp_tty始终为NULL
未考虑重定向前,无阻塞的获取终端按键是如下代码所示实现的fp_tty=fopen("/dev/tty","rw");//更改终端属性,使字符立即输入且不显示tcgetattr(0,&oldt);newt=oldt;newt.c_lflag&=~(ICANON|ECHO);tcsetattr(0,TCSANOW,&newt);intch=fgetc(fp_tty);重定向后发现fp_tty始终为NULL
fp_tty=fopen("/dev/tty","rw");//更改终端属性,使字符立即输入且不显示tcgetattr(0,&oldt);newt=oldt;newt.c_lflag&=~(ICANON|ECHO);tcsetattr(0,TCSANOW,&newt);intch=fgetc(fp_tty);重定向后发现fp_tty始终为NULL
//更改终端属性,使字符立即输入且不显示tcgetattr(0,&oldt);newt=oldt;newt.c_lflag&=~(ICANON|ECHO);tcsetattr(0,TCSANOW,&newt);intch=fgetc(fp_tty);重定向后发现fp_tty始终为NULL
tcgetattr(0,&oldt);newt=oldt;newt.c_lflag&=~(ICANON|ECHO);tcsetattr(0,TCSANOW,&newt);intch=fgetc(fp_tty);重定向后发现fp_tty始终为NULL
newt=oldt;newt.c_lflag&=~(ICANON|ECHO);tcsetattr(0,TCSANOW,&newt);intch=fgetc(fp_tty);重定向后发现fp_tty始终为NULL
newt.c_lflag&=~(ICANON|ECHO);tcsetattr(0,TCSANOW,&newt);intch=fgetc(fp_tty);重定向后发现fp_tty始终为NULL
tcsetattr(0,TCSANOW,&newt);intch=fgetc(fp_tty);重定向后发现fp_tty始终为NULL
intch=fgetc(fp_tty);重定向后发现fp_tty始终为NULL
重定向后发现fp_tty始终为NULL
拉丁的传说
相关分类