【问题标题】:Console output is not aligned控制台输出未对齐
【发布时间】:2013-11-25 11:52:18
【问题描述】:

我的嵌入式系统有一个后台程序,它会向控制台生成一些输出消息。 未完成时,登录程序启动并提示登录字符串到同一控制台。

我的问题是,当登录提示字符串出来的时候,后台程序生成的输出消息是不是这样对齐的:


Embedded System login: msg_line1...
                                   msg_line2...
                                               msg_line3...

预期的输出应该是:


Embedded System login: msg_line1...
msg_line2...
msg_line3...
msg_line4...

不知道如何解决问题... 有人可以帮忙吗?

谢谢!!

【问题讨论】:

    标签: c linux bash embedded embedded-linux


    【解决方案1】:

    将您的终端程序配置为自动换行,以便它在收到\n 时在内部生成\r

    【讨论】:

      【解决方案2】:

      为您的后台程序使用重定向

      YourBackStuff.sh >/tmp/back_out.1 2>/tmp/Back_out.2 &
      

      或刷新屏幕。

      请注意,仅修改了外观,当前应用程序/shell 的真实输出(所以不是背景)是正确的,只有终端显示您收到的所有信息。所以

      YourFrontApp.sh | tee /tmp/front_out.1
      cat /tmp/front_out.1
      

      将产生正确的显示(当后台进程停止时)

      【讨论】:

        【解决方案3】:

        在我看来,您的消息在每行末尾都带有一个换行符(在 C 中由 \n 表示)。这从终端请求一条新线路,它适时提供。它不请求回车(即“回到左侧边缘”)。这将在 C 中表示为 \r

        要修复它,您需要将终端应用程序设置为将\n 解释为\n\r - 它会有“将换行符视为换行符+CR”或类似的设置。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-05
          • 2021-04-23
          • 1970-01-01
          • 2018-02-19
          • 2016-01-24
          • 2018-10-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多