控制台输出未对齐

时间:2013-11-25 11:52:18

标签: c linux bash embedded embedded-linux

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

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


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

预期输出应为:


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

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

THX !!

3 个答案:

答案 0 :(得分:7)

将终端程序配置为autolinefeed,以便在收到\r时在内部生成\n

答案 1 :(得分:0)

使用重定向作为后台程序

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

或刷新屏幕。

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

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

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

答案 2 :(得分:0)

在我看来,您的邮件会在每行末尾以新行字符(由C中的\n表示)发送。这要求终端提供新线路,并提供适当的线路。它不要求回车(即“回到左手边缘”)。这将在C中表示为\r

要解决此问题,您需要将终端应用程序设置为将\n解释为\n\r - 它将设置“将换行符视为换行符+ CR”或其他类似内容。