2013-11-25 2 views
0

내 임베디드 시스템에는 콘솔에 출력 메시지를 생성하는 백그라운드 프로그램이 하나 있습니다. 끝나지 않으면 로그인 프로그램이 시작되고 로그인 문자열이 같은 콘솔에 표시됩니다.콘솔 출력이 맞춰지지 않았습니다.

로그인 프롬프트 문자열이 나올 때 내 질문은, 배경 프로그램에 의해 생성 된 출력 메시지는 다음과 같이 정렬되지 않은됩니다

:


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

이 예상 출력해야한다 :


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

아니오 아이디어 문제를 해결하는 방법 ... 아무도 도와 줄 수 있습니까?

THX !!

답변

7

\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 

는 정확한 표시를 생성합니다 메시지가 각 줄의 끝에서 (C에서 \n으로 표시) 개행 문자로 전송됩니다 (같은 백그라운드 프로세스 정지 할 때)

0

나에게 보이는 . 이것은 정식으로 제공하는 터미널에서 새 행을 요청합니다. 캐리지 리턴을 요청하지 않습니다 (즉, "왼쪽 가장자리로 돌아 가기"). 이것은 C에서 \r으로 표시됩니다.

수정하려면 \n\n\r으로 해석하도록 터미널 응용 프로그램을 설정해야합니다. "newline을 개행 + CR로 처리"또는 일부 설정을 갖습니다.

관련 문제