代码之家  ›  专栏  ›  技术社区  ›  Zach Conn

使用重定向运算符后检索stdin<

  •  2
  • Zach Conn  · 技术社区  · 16 年前

    对于编程任务,我们有以下要求:

    3 回复  |  直到 16 年前
        1
  •  5
  •   sambowry    16 年前

    在linux上,我会打开控制终端/dev/tty。

        2
  •  3
  •   caf    16 年前

    哪个操作系统?在Linux上,实现这一点的常用技巧是检查stderr是否仍连接到tty:

    if (isatty(2))
    

    如果是,则向该终端打开一个新的读取文件描述符:

    new_stdin = open("/proc/self/fd/2", O_RDONLY);
    

    dup2(new_stdin, 0);
    

    (如果stderr也被重定向,那么 isatty(2) 将返回false,您将不得不放弃。)

        3
  •  1
  •   Tim Palak Chaudhary    16 年前

    myprog 3<&0 < filename
    

    然后为您设置文件描述符3 as a duplicate of stdin 我不知道这是否符合你的作业要求,但可能值得一试。

    推荐文章