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