LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 730|回复: 4

more 的重定向问题

[复制链接]
发表于 2004-1-30 14:51:48 | 显示全部楼层 |阅读模式
我在做一个shell,遇到难题百思不得其解。比如对于 more < ./tmp 这样的语句,我是先fd = open(tmp), 然后dup2(fd, stdin_fileno)这样处理。more是我的shell里面的一个内部函数,它在显示了n行后就getchar(),等待用户按任意键。问题是,由于做了dup2(fd, stdin_fileno);
所以getchar()不再起作用。
这个重定向问题怎么解决?

还有,哪里可以找到more的源码?
谢谢赐教。
发表于 2004-1-30 20:50:56 | 显示全部楼层
有一个特殊设备/dev/tty,它永远是当前的终端或者是当前的x控制台,你可以在标准输入输出被重定向时,用它来获得用户输入。
 楼主| 发表于 2004-1-31 00:42:03 | 显示全部楼层
问了几个大论坛,终于有人答到点子上了!
非常感谢!
是不是像读文件那样对待/dev/tty?
用read之类的函数?
发表于 2004-1-31 20:49:08 | 显示全部楼层
在linux/unix中设备本来就是文件,你可以自己写个小程序读写/dev/tty试试。
 楼主| 发表于 2004-2-1 01:00:47 | 显示全部楼层
嗯,昨晚已经试成功,再次感谢斑竹。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表