怎么在重定向标准输入后无阻塞的获取终端按键(在linux下用c语言实现)?
在实现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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
代码如下:
原来你是想要实现类似more的功能啊。
这里是ubuntu的较新版本的more的源代码,只有一个文件,读起来会比较方便。