2013-11-25 47 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」或其他設置。