对于编程作业,我们有以下要求:
经过大量研究,我无法找到一种方法来检索“旧”标准输入以完成第(3)部分。有没有人知道这是怎么回事?
从技术上讲,第(3)部分是奖金部分的一部分,教师可能没有自己实施(这是非常冗长的),所以这可能是不可能的,这是他的疏忽。但是,我当然不想跳到这个结论。
答案 0 :(得分:5)
在linux上,我会打开控制终端/ dev / tty。
答案 1 :(得分:3)
哪个操作系统?在Linux上,通常的技巧是检查stderr是否仍然连接到tty:
if (isatty(2))
如果是,则打开一个新的读取文件描述符到该终端:
new_stdin = open("/proc/self/fd/2", O_RDONLY);
然后将新文件描述符复制到stdin(关闭旧的stdin):
dup2(new_stdin, 0);
(如果stderr也被重定向,那么isatty(2)
将返回false,你将不得不放弃。)
答案 2 :(得分:1)