2013-11-25 51 views
0

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

我的问题是,当登录提示串出来,通过后台程序产生的输出消息是不是这样排列:


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

预期的输出应该是:


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

有没有想法如何解决问题... 任何人都可以帮忙吗?

THX !!

回答

7

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

0

使用你的后台程序

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

或刷新屏幕重定向。只有外观修改

通知,实际输出电流鸥应用/壳(所以不是背景之一)是正确的,只有终端显示收到的所有信息。所以

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

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

0

我看来像你的消息与新行字符(由\n用C表示)在每一行结束时发送。这从终端请求一个新的线路,它适时提供。它不要求回车(即“返回到左手边”)。这将在C中表示为\r

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