【问题标题】:does anyone have more info on standard in and standard out?有没有人有更多关于标准输入和标准输出的信息?
【发布时间】:2010-08-18 21:40:03
【问题描述】:

我对设计 gui 没有太大兴趣(工作太多),我想知道 vim 和贪婪之类的程序是如何工作的,vim 是如何在不打印的情况下修改它的标准的再次全部出来?我经常看到终端程序的输出颜色鲜艳,是否有某种标记语言告诉终端制作字体的颜色?当我使用“cin”时,终端怎么知道程序正在等待输入?还是它只允许在程序暂停时将内容放入标准中?以及如何让程序读取另一个程序的标准? 我在 Ubuntu linux 10.04 终端上使用 c++ 作为语言,谢谢!

【问题讨论】:

  • 我认为这里有 3 或 4 个单独的问题。
  • 投了赞成票,因为提问者想知道如何使用终端功能,但不知道要问什么,所以问了一堆相关问题。

标签: c++ linux stdout stdin


【解决方案1】:

有关交互式终端编程,请查看Curses。该库(以及更新的 NCurses)允许您使用终端对 GUI 进行编程。每种终端类型都支持各种功能,例如光标定位、颜色等(通过terminfo 数据库记录)。

有关重定向的信息,请查看Streams 上的这篇文章。每个进程都可以通过 3 个流(stdout/stderr/stdin)与其父进程通信。

我会将Unix Power Tools 视为解决此类问题的绝佳资源。

【讨论】:

    【解决方案2】:

    答案是curses

    【讨论】:

      【解决方案3】:
      1. 诅咒/ncurses
      2. termcap/terminfo
      3. 因为正在读取 FD0。
      4. 按键在发生时由终端推送到标准输入中,并在读取时弹出。
      5. popen(3)pipe(2) 或外壳中的管道。

      【讨论】:

        【解决方案4】:

        如果你想在屏幕上格式化输出,你需要查看termcap

        使用来自其他程序的输出是通过 pipes 完成的

        【讨论】:

          【解决方案5】:

          仅回答您的第一个问题(StackOverflow 的一个内部规则是每个问题都问一个问题),它可能使用 ANSI escape codes,尽管它可能使用类似 Curses 的库。

          【讨论】:

            猜你喜欢
            • 2013-11-06
            • 2014-07-31
            • 1970-01-01
            • 1970-01-01
            • 2014-03-22
            • 2017-01-19
            • 1970-01-01
            • 1970-01-01
            • 2017-07-21
            相关资源
            最近更新 更多